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下包含了數據實體類(也就是以數據庫表為單位的實體類)
完!
