Entity Framework 學習筆記(二)之數據模型 Model 使用過程


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

完!

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM