需要对一个项目进行升级改造.希望采用Entity Framework4.1编写新增加的代码.原项目采用N层模式开发,项目架构图如下(新增了部分用于MVC的类库,可以忽略):
 
现在希望在SQLServerDAL层中使用EF.但是希望EF的model对应到原程序的EasyFastCMS.Model层中(希望Model层独立).我发现Code First模式可以这么实现,例如:
 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独立出来?

解决方案 »

  1.   

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