2009-11-10 99 views
19
數據庫字段/屬性

我會想知道,有沒有辦法排除從數據庫中的某些字段?對於如:排除從實體框架4代碼優先

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場?

+0

[忽略實體框架4.1代碼第一次一個類屬性]的可能的複製(HTTP:/ /stackoverflow.com/questions/10385248/ignoring-a-class-property-in-entity-framework-4-1-code-first) – 2016-08-26 05:14:25

回答

20

在當前版本中排除屬性的唯一方法是將所有其他列顯式地映射:

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博客發表評論,要求這個功能:)

希望這有助於

亞歷

+3

我意識到,做今天的唯一方法是你提到的方式。我將它發佈在EFDesign博客上:http://blogs.msdn.com/efdesign/archive/2009/10/12/code-only-further-enhancements.aspx – Yogesh 2009-11-30 04:25:45

+0

如果他們添加一個' 。排除()' – Zapnologica 2015-06-11 20:32:19

+0

有沒有辦法使用T4模板從模型中的所有類中排除特定字段? – 2016-08-29 02:03:34

30

我知道這是一個老問題,但萬一有人(像我)來從變奏^ h ...

現在是在實體框架4.3可以做到這一點。以供將來參考

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

或在VB builder.Entity(Of Employee).Ignore(Function(e)e.AddressAs)' – 2012-05-23 08:54:01

+3

這是全球性的嗎?我的意思是,如果我想這樣做只是爲了這一個電話呢?我可以把它重新打開,可以這麼說嗎? – vbullinger 2013-04-08 14:10:46

+0

還是有用的。你剛剛爲我節省了40分鐘的研究成果。 – 2015-08-30 14:31:15