Entity Framework 4 および Code-First を使用してデータベースからフィールド/プロパティを除外する
-
19-09-2019 - |
質問
データベースから一部のフィールドを除外する方法はあるのか知りたいのですが?たとえば:
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が参照されていないので、これは、Entity /データベースの一部ではありません。
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);
所属していません StackOverflow