2014-02-26 112 views
5

財產我有一個代碼,第一個模型,所有的實體是從Entity基類派生。我在基類中有一個屬性IsDeleted,我想在所有實體中忽略(我無法刪除/註釋IsDeleted屬性,因爲在許多項目中使用了基類)。是否存在一種配置modelBuilder忽略這個所有制形式的所有實體(按約定,我認爲),但無指定modelBuilder.Entity<...>().Ignore(l => l.IsDeleted)從我的模型的所有實體的方法嗎?實體框架忽略約定

感謝, 離子

回答

2

您可以使用屬性的[NotMapped]註釋,但仍然需要添加的是不一樣的,因爲只有指定了一次,有忽視公約的每個實體它。

14

您可以使用新的EF 6.1 Custom Code First Conventions做到這一點:

modelBuilder.Types().Configure(c => c.Ignore("IsDeleted")); 

這會忽略你的任何類型的名稱IsDeleted的任何財產。

如果你只是想爲類繼承一定的基類做到這一點,你可以這樣做:

modelBuilder.Types() 
      .Where(t => t.IsSubclassOf(typeof(MyBaseClass))) 
      .Configure(c => c.Ignore("IsDeleted")); 
+1

我使用EF 6.0,這適用於所有非明確的實施者: '模型構建器。.Types ()配置(C => c.Ignore (I => i.EntityId));' –

+0

如何忽略的基類的所有屬性?如果我忽略基類型,同時聲明子類型的實體集,會發生什麼?如果我不關心非POCO,我可以這樣使用'EntityBase'嗎? – Shimmy