我已经定义了POCO,如下所示:
public class Customer
{
public string Name { get; set; }
public DateTime DOB { get; set; }
[System.ComponentModel.DataAnnotations.Schema.NotMapped] // <- this is what I want to do, but can't in PCL
public AccountCollection Accounts { get; set; }
}
上面有“NotMapped”属性,这就是我想要的 - 但它在便携式类库(PCL)中不可用。问题是,我需要的类是在将在便携式设备上使用的程序集中定义的,但它将从Web上的实体框架填充,该框架可以访问NotMapped属性。如果我能找到一种方法将属性添加到EF的“NotMapped”列表中,那将是理想的。
有没有办法让它发挥作用?也就是说,以编程方式执行“NotMapped”操作的方法是什么?
我考虑过其他解决方法,但没有一个是理想的:
答案 0 :(得分:1)
在Context的OnModelCreating()重载中找到答案。访问modelBuilder参数,可以找到实体并忽略特定属性。即使在PCL中定义POCO,这也有效。
例如:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
// Ignore Customer.Accounts
modelBuilder.Entity<Customer>().Ignore(c => c.Accounts);
}