我会想知道,有没有办法排除从数据库中的某些字段?为例如:

public class Employee
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string FatherName { get; set; }

    public bool IsMale { get; set; }
    public bool IsMarried { get; set; }

    public string AddressAs { get; set; }
}

如何排除AddressAs字段从数据库?

有帮助吗?

解决方案

在当前版本排除一个属性的唯一方式是显式地映射所有其他列:

builder.Entity<Employee>().MapSingleType(e => new {
  e.Id,
  e.Name,
  e.FatherName,
  e.IsMale,
  e.IsMarried
});

由于AddressAs未被引用它不是实体/数据库的一部分。

在EF团队的考虑的将是这样的:

builder.Entity<Employee>().Exclude(e => e.AddressAs);

我建议你告诉留在EFDesign博客发表评论,要求这样的特征:)

希望这有助于

亚历

其他提示

供将来参考:可以使用数据的注释 MSDN EF - 代码优先数据注释

[NotMapped]        
public string AddressAs { get; set; }

我知道这是一个老问题,但万一有人(像我)来从搜索...

现在它是在实体框架4.3可能做到这一点。你会做它像这样:

builder.Entity<Employee>().Ignore(e => e.AddressAs);

也有可能添加要忽略的的阴影属性的在的DbContext:

builder.Entity<Employee>().Property<string>("AddressAs");

然后,可以在像这样该列查询:

context.Employees.Where(e => EF.Property<string>(e, "AddressAs") == someValue);
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top