『壹』 asp.net 中 EF code first DbContext分別是什麼,修改模型後,一定要遷移嗎
DbContext是根據connectionString生成的資料庫上下文類,具體的使用可以參見微軟的msdn,如果是修改了模型的話,不要手動修改生成的代碼,建議使用遷徙,因為有些文件手動修改後,再次運行就會覆蓋代碼,如果使用的是mvc遷徙比較容易,msdn有關於ef的遷徙,如果是webform的話,code first和model first遷徙很容易失敗,最好使用database first,然後在model設計器中選擇根據DB更新模型,再編譯的話會更新相應的代碼。
『貳』 code first發布後怎麼初始化資料庫
seed函數內容添加的時候,你的codefirst 代碼沒有更新,所以Seed函數沒有被調用。 Migration只檢查資料庫的機構有沒有發生變化,如果發生了變化,它會調用Seed方法重新初始化資料庫。但是如果資料庫已經存在而且與你的當前代碼一致
『叄』 entity framework codefirst 不能創建資料庫表。
使用Entity Framework CodeFirst模式創建新資料庫
開發環境
Visual Studio 2010 SP1
sql Server Compact 4.0
演練步驟
打開Visual Studio;
新建Console應用程序Known.EFDemo;
創建Blog模型;public class Blog
{
public int Id { get; set; }
public string Name { get; set; }
public List<Post> Posts { get; set; }
}
public class Post
{
public int Id { get; set; }
public string Title { get; set; }
public string Content { get; set; }
}
右擊項目->管理NuGet程序包,搜索Entity Framework並安裝;或使用程序包管理器控制台運行命令Install-Package EntityFramework;
創建BlogContext;
public class BlogContext : DbContext
{
public DbSet<Blog> Blogs { get; set; }
}
修改App.config文件,配置ConnectionString和SQL Server Compact數據提供者工廠;<connectionStrings>
<add name="BlogContext" connectionString="Data Source=|DataDirectory|Blog.sdf" providerName="System.Data.SqlServerCe.4.0" />
</connectionStrings>
<system.data>
<DbProviderFactories>
<remove invariant="System.Data.SqlServerCe.4.0" />
<add name="Microsoft SQL Server Compact Data Provider 4.0" invariant="System.Data.SqlServerCe.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
</DbProviderFactories>
</system.data>
修改Program並運行,成功後,可以在伺服器資源管理器中查看自動生成的表結構及數據。using (var context = new BlogContext())
{
Console.WriteLine("請輸入博客名稱:");
var name = Console.ReadLine();
var blog = new Blog { Name = name };
blog.Posts = new List<Post>();
Console.WriteLine("請輸入隨筆標題:");
var title = Console.ReadLine();
Console.WriteLine("請輸入隨筆內容:");
var content = Console.ReadLine();
blog.Posts.Add(new Post { Title = title, Content = content });
context.Blogs.Add(blog);
context.SaveChanges();
Console.WriteLine("保存成功!");
}
當模型改變時,可以使用命令自動遷移資料庫,配置命令:Enable-Migrations –EnableAutomaticMigrations ;更新命令:Update-Database –Verbose 。
『肆』 EF CodeFirst 怎麼來更新已存在的資料庫結構
本地更新或者開發環境可以直接連上資料庫的,直接在Package Manager Console(包管理器控制台)輸入:update-database -〉回車執行OK
自動更新方法:
在程序初次運行時增加Database.SetInitializer(new <DbContext, Configuration>());
DbContext是你資料庫連接的context,
Configuration是你程序Migrations里的,如果不在一個項目里,要將Configuration類改為public。
直接運行程序OK,
有人問web版的怎麼弄,放在哪?
找到目錄下的Global.asax,加到 Application_Start 里就OK了
『伍』 EF中的code first模式 怎麼創建資料庫
方法/步驟
1
EF的Code First模式不需要我們創建什麼數據向導,直接寫代碼就行了。我們用NET最簡單的控制台應用程序來說明。如下圖所示
7
通過以上的步驟,你感覺到EF的Code First模式的魅力了沒,自動創建資料庫以及表。這也是現在應用最多的模式了,好了,這次分享就到這里。有什麼問題的話,留言咨詢即可。
『陸』 EF 6.x Code First 求教資料庫欄位不映射到實體類的方法
你是想資料庫不要外鍵 但是實體要導航屬性吧 需求蠻奇特的 你實體也不加導航屬性 需要關聯數據的時候用 JOIN 查詢 重新EF介面 在生成資料庫的時候 只解釋生成關系
『柒』 如何使用CodeFirst進行數據遷移
如果你還在為
支持xxx上下文的模型已在資料庫創建後發生更改。請考慮使用 Code First 遷移更新資料庫
找到你的資料庫上下文所在的類庫(一般都是寫在項目中的model中,也有的獨立model類庫)
打開Nuget 程序包管理控制台
輸入:Enable-Migrations 回車
如果正確的話 則顯示已為項目 xxx啟用 Code First 遷移。
我在這里說下 幾種有可能出現的錯誤:
1.No context type was found in the assembly xxx
在當前項目中 沒有找到資料庫上下文,也就是DbContext 繼承的的 "資料庫.cs"
2.The EntityFramework package is not installed on project xxx
當前項目已經找到了數據上下文,但是沒有EntityFrameWork 需要安裝輸入 install-package entityframework(手大的 不知道對不對)
基本就這兩個問題,如果安裝成功則在項目中 出現Migrations文件夾,裡面會記錄每次數據遷移所發生的變化。
非常好用,不用再刪除資料庫 重新生成 數據丟失等問題。
常用語句 :enable-Migrations -Force 替換遷移數據文件 update-database 更新 add-migration 添加新的更新文件
『捌』 如何使用CodeFirst進行數據遷移
如果你還在為 支持xxx上下文的模型已在資料庫創建後發生更改。請考慮使用 Code First 遷移更新資料庫 找到你的資料庫上下文所在的類庫(一般都是寫在項目中的model中,也有的獨立model類庫) 打開Nuget 程序包管理控制台 輸入:Enable-Migrations 回車 如果正確的話 則顯示已為項目 xxx啟用 Code First 遷移。 我在這里說下 幾種有可能出現的錯誤: 1.No context type was found in the assembly xxx 在當前項目中 沒有找到資料庫上下文,也就是DbContext 繼承的的 "資料庫.cs" 2.The EntityFramework package is not installed on project xxx 當前項目已經找到了數據上下文,但是沒有EntityFrameWork 需要安裝輸入 install-package entityframework(手大的 不知道對不對) 基本就這兩個問題,如果安裝成功則在項目中 出現Migrations文件夾,裡面會記錄每次數據遷移所發生的變化。 非常好用,不用再刪除資料庫 重新生成 數據丟失等問題。 常用語句 :enable-Migrations -Force 替換遷移數據文件 update-database 更新 add-migration 添加新的更新文件
『玖』 mvc3里使用codefirst,連接sqlserver 資料庫怎麼連
你新建MVC3項目的時候,有個選擇項目模板,不要選成空,選Internet應用程序,然後裡面就有基本的登錄代碼