使用Entity Framework 4和Code-First从数据库中排除字段/属性
我想知道有没有办法从数据库中排除一些字段? 例如:
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().MapSingleType(e => new { e.Id, e.Name, e.FatherName, e.IsMale, e.IsMarried });
由于未引用AddressAs,因此它不是实体/数据库的一部分。
EF团队正在考虑添加以下内容:
builder.Entity().Exclude(e => e.AddressAs);
我建议你告诉我在EFDesign博客上留言,请求这个function:)
希望这可以帮助
亚历克斯
供将来参考:您可以使用数据注释MSDN EF – 代码优先数据注释
[NotMapped] public string AddressAs { get; set; }
我知道这是一个老问题,但万一有人(像我一样)从搜索中找到它…
现在可以在entity framework4.3中执行此操作。 你会这样做:
builder.Entity().Ignore(e => e.AddressAs);
也可以在DbContext中将要忽略的列添加为Shadow属性 :
builder.Entity().Property("AddressAs");
然后您可以像这样查询该列:
context.Employees.Where(e => EF.Property(e, "AddressAs") == someValue);