一、新建控制台应用程序,然后右键->添加新建项,选择数据里面的实体数据模型:
ns="http://schemas.microsoft.com/ado/2009/11/mapping/cs"> <EntityContainerMapping StorageEntityContainer="StudentSystemModelStoreContainer" CdmEntityContainer="StudentSystemEntities"> <EntitySetMapping Name="Students"> <EntityTypeMapping TypeName="StudentSystemModel.Student"> <MappingFragment StoreEntitySet="Student"> <ScalarProperty Name="StudentID" ColumnName="StudentID" /> <ScalarProperty Name="StudentName" ColumnName="StudentName" /> <ScalarProperty Name="Sex" ColumnName="Sex" /> <ScalarProperty Name="Age" ColumnName="Age" /> <ScalarProperty Name="Major" ColumnName="Major" /> <ScalarProperty Name="Email" ColumnName="Email" /> </MappingFragment> </EntityTypeMapping> </EntitySetMapping> </EntityContainerMapping> </Mapping> </edmx:Mappings> </edmx:Runtime> <!-- EF Designer content (DO NOT EDIT MANUALLY BELOW HERE) --> <Designer xmlns="http://schemas.microsoft.com/ado/2009/11/edmx"> <Connection> <DesignerInfoPropertySet> <DesignerProperty Name="MetadataArtifactProcessing" Value="EmbedInOutputAssembly" /> </DesignerInfoPropertySet> </Connection> <Options> <DesignerInfoPropertySet> <DesignerProperty Name="ValidateOnBuild" Value="true" /> <DesignerProperty Name="EnablePluralization" Value="true" /> <DesignerProperty Name="IncludeForeignKeysInModel" Value="true" /> <DesignerProperty Name="UseLegacyProvider" Value="false" /> <DesignerProperty Name="CodeGenerationStrategy" Value="无" /> </DesignerInfoPropertySet> </Options> <!-- Diagram content (shape and connector positions) --> <Diagrams></Diagrams> </Designer></edmx:Edmx>
其中SSDL content定义的是数据库表的结构:

CSDL content定义的是实体类的结构:

C-S mapping content定义的是实体类和数据库表的映射关系:

从C-S mapping content节点中可以看出,EF为什么会自动生成实体类,或者通过实体类为什么能操作数据库的数据了。
从这里可以看出EF做的第一件事情:取数据库的数据表结构,生成实体类,在表和实体之间自动建立映射关系。
3、StudentManager.tt是T4模板,是用来生成实体类的模板。
T4模板:从edmx中取数据结构,按照模板生成对应格式的实体类。
4、StudentManager.Context.cs文件
//------------------------------------------------------------------------------// <auto-generated>// 此代码已从模板生成。//// 手动更改此文件可能导致应用程序出现意外的行为。// 如果重新生成代码,将覆盖对此文件的手动更改。// </auto-generated>//------------------------------------------------------------------------------namespace EFDbFirstDemo{ using System; using System.Data.Entity; using System.Data.Entity.Infrastructure; public partial class StudentSystemEntities : DbContext { public StudentSystemEntities() : base("name=StudentSystemEntities") { } protected override void OnModelCreating(DbModelBuilder modelBuilder) { throw new UnintentionalCodeFirstException(); } public virtual DbSet<Student> Students { get; set; } }}StudentSystemEntities继承自DbContext,用来操作数据库。
到此这篇关于Entity Framework生成DataBase First模式的文章就介绍到这了。希望对大gPOpx家的学习有所帮助,也希望大家多多支持我们。








