データベースからいくつかのフィールドを除外する方法があることを知りたいですか?例:
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);