当前位置: 代码迷 >> ASP.NET >> Entity Framework4.1 数据库优先模式,怎么映射已存在的实体类
  详细解决方案

Entity Framework4.1 数据库优先模式,怎么映射已存在的实体类

热度:3151   发布时间:2013-02-25 00:00:00.0
Entity Framework4.1 数据库优先模式,如何映射已存在的实体类
需要对一个项目进行升级改造.希望采用Entity Framework4.1编写新增加的代码.原项目采用N层模式开发,项目架构图如下(新增了部分用于MVC的类库,可以忽略):
 


现在希望在SQLServerDAL层中使用EF.但是希望EF的model对应到原程序的EasyFastCMS.Model层中(希望Model层独立).我发现Code First模式可以这么实现,例如:
 
C# code
namespace EasyFastCMS.WebMvc.DAL{    public class EasyFastCMSContext : DbContext    {        private readonly static string CONNECTION_STRING = "name=DataBase";        public EasyFastCMSContext() : base(CONNECTION_STRING) { }        protected override void OnModelCreating(DbModelBuilder modelBuilder)        {            modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();            modelBuilder.Conventions.Remove<IncludeMetadataConvention>();            modelBuilder.Entity<UserGroup>().ToTable("EasyFastCMS_UserGroup");        }        public DbSet<UserGroup> UserGroup { get; set; }    }}

 
(以上代码为在MVC中做尝试,实现了EF的model对应MVC中的M)
 
但是,数据库已存在,并且有大量有用数据,并且我不想使用Code First模式,而希望使用 数据库优先模式.请问在DataBase First模式中,能不能做到类似Code First模式的把 Model独立出来?


------解决方案--------------------------------------------------------
我不太确定,data base first 和 code first 的意思,是不是以数据库为主的开发和以对象模式为主的开发模式,在前期,你们用的是以数据库为主的开发模式,现在增加了MVC的构架,而MVC又是以对象模式为主的开发,如果是这样,是可能的,完全没问题, 在comm中定义一个数据访问接口,由原来的以数据库为主的代码实现接口 ,由EasyFastCMS.WebMvc.DAL去调用(可能需要改底层的代码)
注:我对MVC构架不太了解
 
  相关解决方案