[Entity Framework] Code First @ SQL Compact EF6.1
前幾天 EF6.1 才剛 RTM,EntityFramework.SqlServerCompact 也一併到 6.1 了
準備環境
- 從 Extensions and Updates下載 SQL Server Compact Toolbox
- 從 NuGet下載 EntityFramework.SqlServerCompact 6.1.0
參考上篇使用 Code First
http://www.dotblogs.com.tw/yc421206/archive/2014/01/20/141712.aspx
連線字串
<add name="DefaultConnection" providerName="System.Data.SqlServerCe.4.0" connectionString="Data Source=|DataDirectory|localdb.sdf" />
完成後,動態產生資料,如下圖:
到目前使用上沒什麼太大的問題
接下來,我想要用反向工程將已經存在的DB,轉成 Code First 的程式碼,在 VS2013 已經沒有內建 SQLCE 的連線管理,必須要靠 SQL Server Compact Toolbox,然而 SQL Server Compact Toolbox 似乎還沒有轉成 Code First 的模版
正當覺得失落時,不死心找到了 SSCEVSTools ,可以用它來取代 SQL Server Compact Toolbox 管理
http://visualstudiogallery.msdn.microsoft.com/df093e9f-3e74-41c5-aeec-6371436423c5
所以可以用它來管理 SQLCE 連線
姑且不論 SSCEVSTools 好不好用(個人覺得不好用),總算在 Server Explorer 看到 SQLCE
接下來我們就可以利用新功能來產生 Code First 的程式碼,參考上篇 http://www.dotblogs.com.tw/yc421206/archive/2014/03/18/144430.aspx
操作步驟如下所示:
產生出來的 Code First
{ public Model1() : base("name=Model1") { } public virtual DbSet<Customers> Customers { get; set; } public virtual DbSet<Products> Products { get; set; } protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Entity<Customers>() .HasMany(e => e.Products) .WithOptional(e => e.Customers) .HasForeignKey(e => e.Customer_Id); } }
連線字串
<add name="Model1" connectionString="Data Source=C:\Users\s01yao\Desktop\SqlCeCodeFirst\bin\Debug\localdb.sdf" providerName="System.Data.SqlServerCe.4.0" />
文章出自:http://www.dotblogs.com.tw/yc421206/archive/2014/03/19/144449.aspx
若有謬誤,煩請告知,新手發帖請多包涵
Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET