[C#.NET][Entity Framework] Code First 整合 SQL Server | Service-based Database
續上篇 http://www.dotblogs.com.tw/yc421206/archive/2014/01/20/141712.aspx
當我們沒有指定連線字串時,EF 會自動幫我們產生*.mdf,位置為 C:\Users\account
除了預設之外,我們也可以透過連線字串來處理,接下來要演練整合 SQL Server | Service-based Database 兩種連線方式
若我們需要手動鍵入一些預設資料,可以加入 *.mdf 檔
@Winform 專案,新增 localDb.mdf
雙擊 localDb.mdf 檔案,VS 就會幫我們打開它,右下角的屬性也有連線字串,這時候便可手動為 localDb.mdf 加入一些資料
@App.Config
加入以下連線字串providerName="System.Data.SqlClient" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\LocalDb.mdf;Initial Catalog=MyProduct;Integrated Security=True;" />@CustomerDbContext.cs替 CustomerDbContext 增加建構子{ public CustomerDbContext(string connectString) : base(connectString) { } public CustomerDbContext() { } public DbSet<Product> Products { get; set; } public DbSet<Customer> Customers { get; set; } ~CustomerDbContext() { this.Dispose(); } }@Winform用戶端調用時,傳入連線字串 "LocalDbConnect"{ this._dbContext = new CustomerDbContext("LocalDbConnect"); this._dbContext.Customers.Load(); this.customerBindingSource.DataSource = this._dbContext.Customers.Local.ToBindingList(); }當新增一筆資料後,MyProduct 資料庫的 Customers Table 已經有一筆資料了
我本機裡的開發環境是 SQL Server 2012 Developer Edition with sp1,我若沒記錯的話,Code First 需要 SQL Server 2008 以上的版本才能整合(一時間找不到相關資料,若有前輩知道的話,煩請告知小弟一下)
@App.ConfigproviderName="System.Data.SqlClient" connectionString="Data Source=.;Initial Catalog=MyProduct;Integrated Security=True;" />@Winform在用戶端調用時把連線字串換成 "RemoteDbConnect"當新增一筆資料的時候,也可以看到遠端資料庫也跟著異動
文章出自:http://www.dotblogs.com.tw/yc421206/archive/2014/01/21/141824.aspx
範例下載:https://dotblogsfile.blob.core.windows.net/user/yc421206/1401/201412103242748.zip
若有謬誤,煩請告知,新手發帖請多包涵
Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET