Entity Framework 數據模型 Model 創建的使用:
開發環境:VS2012
數據庫:SQL Server 2008
Entity Framework 版本:6.12
下面是新建的項目架構:(當然這是我的項目架構,只是參考)
1. 新建項目
新建一個控制台項目即可 :Future.LifeWillBetter.DAL.ForModel.ConsoleApplication
如圖:
2.新建數據模型
右鍵點擊Future.LifeWillBetter.DAL.ForModel.ConsoleApplication控制台應用程序
添加-》新建項目-》ADO.NET實體數據模型—》空EF設計器模型—》完成(具體如下圖)

到此為止我的數據模型就已經創建完成了,名稱:FutureLifeWiilBetterModel.edmx如圖:

3添加實體模型(打開FutureLifeWiilBetterModel.edmx)
3.1添加實體
在FutureLifeWiilBetterModel.edmx中,空白處右鍵單擊—》新增—》實體—》確定
填寫實體名稱,修改實體集名稱(這個是數據庫中數據表的名稱),以及修改屬性名
再在此實體上,右鍵單擊—》新增—》標量屬性,這里增加自己想要的字段即可,以及對此字段的屬性修改。
同理即可新增多個實體
3.2 添加關系
在FutureLifeWiilBetterModel.edmx中,空白處右鍵單擊—》新增—》關聯—》設置自己想要的關聯關系—》確定
3.3 生成數據庫
3.3.1 在FutureLifeWiilBetterModel.edmx中,空白處右鍵單擊—》根據模型生成數據庫—》新建連接(設置好數據庫連接)—》確定—》下一步(這時會生成sql語句代碼)—》完成。
點擊下一步,直到完成,會生成一個SQL腳本。
我發現我的FutureLifeWiilBetterModel.edmx數據模型中的FutureLifeWiilBetterModel.tt下只有一個T_Users.cs實體類,這是雙擊打開FutureLifeWiilBetterModel.edmx數據模型
由於我這是以VS數據模型創建的所以我點擊“根據模型生成數據庫”,這是會重新生成一個SQL腳本,按照上面的步驟繼續執行,然后刷新Future.LifeWillBetter.DAL.ForModel.ConsoleApplication控制台程序,這是T_UserStates.cs就出來了,也是一個同步過程!
3.4 文件簡介
3.4.1 App.config 這個文件是在創建FutureLifeWiilBetterModel.edmx模型之后生成的,
<?xml version="1.0" encoding="utf-8"?> <configuration> <configSections> <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> </configSections> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> </startup> <connectionStrings> <add name="FutureLifeWiilBetterModelContainer" connectionString="metadata=res://*/FutureLifeWiilBetterModel.csdl|res://*/FutureLifeWiilBetterModel.ssdl|res://*/FutureLifeWiilBetterModel.msl;provider=System.Data.SqlClient;provider connection string="data source=.;initial catalog=Future.LifeWillBetter2;user id=sa;password=173007740;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" /> </connectionStrings> <entityFramework> <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" /> <providers> <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> </providers> </entityFramework> </configuration>
3.4.2FutureLifeWiilBetterModel.Context.tt下的FutureLifeWiilBetterModel.Context.cs 這是實體上下文類
//------------------------------------------------------------------------------ // <auto-generated> // 此代碼已從模板生成。 // // 手動更改此文件可能導致應用程序出現意外的行為。 // 如果重新生成代碼,將覆蓋對此文件的手動更改。 // </auto-generated> //------------------------------------------------------------------------------ namespace Future.LifeWillBetter.DAL.ForModel.ConsoleApplication { using System; using System.Data.Entity; using System.Data.Entity.Infrastructure; public partial class FutureLifeWiilBetterModelContainer : DbContext { public FutureLifeWiilBetterModelContainer() : base("name=FutureLifeWiilBetterModelContainer") { } protected override void OnModelCreating(DbModelBuilder modelBuilder) { throw new UnintentionalCodeFirstException(); } public virtual DbSet<T_Users> T_UsersSet { get; set; } public virtual DbSet<T_UserStates> T_UserStatesSet { get; set; } } }
3.4.3 FutureLifeWiilBetterModel.tt下包含了數據實體類(也就是以數據庫表為單位的實體類)
完!
