为什么EF6不支持`ignore`实体Property(复杂属性)Fluent API的属性?

时间:2016-01-14 08:56:59

标签: c# entity-framework ef-fluent-api

如果实体为

public class AddressDetail 
{
   public string Country{get;set;}
}

public class Order
{
    public AddressDetail AddressDetail{get;set;}
}

如何忽略Fluent API Not Oreder.AddressDetail.Country的<{1}}属性?

我找到了 EF6 的解决方案,但我不知道为什么EF6之前有这个功能,EF6没有这个功能?

  

对于EF5及更早版本:   在您的上下文的[NotMap]覆盖中:

DbContext.OnModelCreating
  

对于EF6:你运气不好。请参阅Mrchief's answer

enter image description here

1 个答案:

答案 0 :(得分:0)

我理解这个异常只允许使用普通属性表达式,因此如果要忽略属性的属性,则必须对外部属性的类型执行此操作:

modelBuilder.Types<WhateverTheTypeOfResponseIs>()
    .Configure(c => c.Ignore(r => r.MobilePhone));

虽然,我想EF6的正确语法是:

modelBuilder.Entity<WhateverTheTypeOfResponseIs>()
    .Ignore(r => r.MobilePhone);