Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 禁用或关闭基于POCO属性的映射自动生成_Entity Framework_Ef Code First - Fatal编程技术网

Entity framework 禁用或关闭基于POCO属性的映射自动生成

Entity framework 禁用或关闭基于POCO属性的映射自动生成,entity-framework,ef-code-first,Entity Framework,Ef Code First,我使用代码优先结构连接到现有数据库,我知道从技术上讲,这不是代码优先。我这样做是为了使用LINQtoEntities(而不是LINQtoSQL)模拟假数据存储库。在去年的CTP3中,这非常有效——我可以为我的表创建一个新配置,并显式添加映射到数据库的POCO属性 2011年7月,EF4.1中包含了第一个代码,所以我想我应该升级。不幸的是,EF现在对我来说太聪明了。例如,假定my POCO的所有属性都映射到数据库字段,因此,例如,属性Person.TempPassword{get;set;}会导致

我使用代码优先结构连接到现有数据库,我知道从技术上讲,这不是代码优先。我这样做是为了使用LINQtoEntities(而不是LINQtoSQL)模拟假数据存储库。在去年的CTP3中,这非常有效——我可以为我的表创建一个新配置,并显式添加映射到数据库的POCO属性

2011年7月,EF4.1中包含了第一个代码,所以我想我应该升级。不幸的是,EF现在对我来说太聪明了。例如,假定my POCO的所有属性都映射到数据库字段,因此,例如,属性Person.TempPassword{get;set;}会导致生成的SQL在my Person表中搜索TempPassword列;b如果我从我的POCO继承一个类,例如,Employee从Person继承,EF开始生成鉴别器列等

我知道我可以使用Ignore或[NotMapped]属性解决前一个问题,但是这是一个很大的麻烦,我不想这样做。后一个问题我无法解决

我所需要的只是一种能够关闭所有这些智能的方法,让我像以前那样显式地设置属性。请注意,我也尝试过删除每一个约束,例如modelBuilder.Conventions.Remove

我还重写了对OnModelCreating的调用,没有调用base.OnModelCreating,只包含了我自己的配置代码,如下所示

我的配置示例如下:

public class AddressBookConfiguration : EntityTypeConfiguration<AddressBook>{
    public AddressBookConfiguration()
    {
    this.HasKey(x => x.AddressBookID);
    this.ToTable("AddressBook");
    this.Property(x => x.AddressBookID);
    this.Property(x => x.AddressBookName);
    this.Property(x => x.WhenCreated);
    this.Property(x => x.TotalItems);
    }
}

多谢各位

当需要扩展实体框架类功能时,我通常采用的方法是直接从数据库生成数据模型,而不是使用

我知道这是不够的,您不能用这种方式创建属性。 不过,恐怕这是你能得到的最好的了