搭建一个简单的MVC+EF框架
首先下图是该实例的结构。
结构搭建好后,就从写实体开始
在DataInfo文件中写表实体:
namespace DataInfo.DataInfos { [DataContract] public class BookInfo { public BookInfo() { Id = Guid.Empty; BookName = string.Empty; BookPrice = string.Empty; } /// <summary > /// Id /// </summary> [DataMember] public Guid Id { set; get; } /// <summary > /// BookName /// </summary> [DataMember] public string BookName { set; get; } /// <summary > /// BookPrice /// </summary> [DataMember] public string BookPrice { set; get; } } }
注:[DataContract]需要引用System.Runtime.Serialization.dll
在BookMap文件中写mapping:
namespace DataContext.Mapping { public class BookMap : EntityTypeConfiguration<BookInfo> { public BookMap() { //Primary Key this.Property(t => t.Id).IsRequired(); // Properties this.Property(t => t.BookName).IsRequired().HasMaxLength(1024); this.Property(t => t.BookPrice).IsRequired().HasMaxLength(1024); this.ToTable("table_book"); } } }
EntityTypeConfiguration<T>需要引用:EntityFramework.dll
在DataContext文件中编写映射关系:
namespace DataContext { public class DataContext : DbContext { public DbSet<BookInfo> BookInfos { get; set; } ///// <summary> ///// 映射表名 ///// </summary> protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Configurations.Add(new BookMap()); base.OnModelCreating(modelBuilder); } } }
注:必须要继承DbContext类。
接下来就是在MVC项目中使用EF了。
在需要使用EF的地方创建一个属性:
public DataContext.DataContext DataContext { get { return new DataContext.DataContext(); } }
using(var db=DataContext) { var query = db.BookInfos.FirstOrDefault(p=>p.BookName=="语文");//查找名称为‘语文’的一条数据 }
若要添加表,就在DataContext、DataInfo中相应位置添加表,在DataContext文件中添加映射表就可以了。