32

データベースからいくつかのフィールドを除外する方法があることを知りたいですか?例:

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フィールドをデータベースから除外するにはどうすればよいですか?

4

4 に答える 4

75

今後の参考のために: データ注釈を使用できます MSDN EF - Code First Data Annotations

[NotMapped]        
public string AddressAs { get; set; }
于 2013-12-26T14:03:30.387 に答える
34

私はこれが古い質問であることを知っていますが、誰か(私のような)が検索からそれに来た場合に備えて...

これで、EntityFramework4.3でこれを行うことができます。あなたはそうするでしょう:

builder.Entity<Employee>().Ignore(e => e.AddressAs);
于 2012-03-09T12:26:40.070 に答える
21

現在のバージョンでは、プロパティを除外する唯一の方法は、他のすべての列を明示的にマップすることです。

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 ブログにコメントを残して、この機能をリクエストすることをお勧めします :)

お役に立てれば

アレックス

于 2009-11-30T02:53:01.400 に答える
0

無視する列をDbContextのシャドウ プロパティとして追加することもできます。

builder.Entity<Employee>().Property<string>("AddressAs");

次に、その列に対して次のようにクエリを実行できます。

context.Employees.Where(e => EF.Property<string>(e, "AddressAs") == someValue);
于 2018-07-09T19:53:36.473 に答える