搭建一个简单的MVC+EF框架
首先下图是该实例的结构。
结构搭建好后,就从写实体开始
在DataInfo文件中写表实体:
namespace DataInfo.DataInfos{ [DataContract] public class BookInfo { public BookInfo() { Id = Guid.Empty; BookName = string.Empty; BookPrice = string.Empty; } ////// Id /// [DataMember] public Guid Id { set; get; } ////// BookName /// [DataMember] public string BookName { set; get; } ////// BookPrice /// [DataMember] public string BookPrice { set; get; } }}
注:[DataContract]需要引用System.Runtime.Serialization.dll
在BookMap文件中写mapping:
namespace DataContext.Mapping{ public class BookMap : EntityTypeConfiguration{ 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需要引用:EntityFramework.dll
在DataContext文件中编写映射关系:
namespace DataContext{ public class DataContext : DbContext { public DbSetBookInfos { get; set; } ///// ///// 映射表名 ///// 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文件中添加映射表就可以了。