我想使用實體框架在數據庫上保存一些數據。
我有一些更大的POCO,但我只想存儲一些屬性。忽略實體框架中的所有屬性6
我知道我可以通過使用Ignore()
方法與Fluent API
達到此目的。但是,是否也有可能不僅忽略定義的屬性,而且還定義了所有屬性?
所以,如果你有一個POCO這樣的:
public class MyPoco
{
public int Id { get; set; }
public string Name { get; set; }
.
.
.
public int SomeSpecialId { get; set; }
}
而你只想要存儲Id
和SomeSpecialId
,你會怎麼做:
protected override void OnModelCreating(DbModelBuilder builder)
{
builder.Entity<MyPoco>().Ignore(x => x.Name);
builder.Entity<MyPoco>().Ignore(x => x.WhatEver);
.
.
.
// ignore everything but Id and SomeSpecialId
base.OnModelCreating(builder);
}
現在的問題是,如果你有延長POCO但不想堅持這些擴展屬性,您還必須更改OnModelCreating()
方法。那麼有沒有辦法做這樣的事情:
public override void OnModelCreating(DbModelBuilder builder)
{
builder.Entity<MyPoco>().IgnoreAllBut(x => x.Id, x.SomeSpecialId);
base.OnModelCreating(builder);
}
也許使用自定義Coventions? http://stackoverflow.com/questions/22038690/entity-framework-ignore-property-by-conventions – ErikEJ
@ErikEJ我沒有基類,我不能有一些原因。 –