简单MVC+EF框架搭建

搭建一个简单的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文件中添加映射表就可以了。

原文地址:https://www.cnblogs.com/yxys/p/5284082.html