2

最初にエンティティ フレームワーク コードを使用しています。次のように宣言された 2 つのエンティティがあります。

[Table("BaseTable")]    
public class BaseEntity
{
    public string SomeProperty{get; set;}
}

[Table("DerivedTable")]
public class DerivedEntity
 : BaseEntity
{
     public string SomeOtherProperty {get; set;}
}

問題は、dbcontext でジェネリック set メソッドを呼び出すと、常にエンティティがDerivedEntity型として返されることです。(EFは、メソッドから予想されるエンティティタイプを返さないだけで、データベースに正しいテーブルマッピングを設定していますset()

DbContext.Set<BaseEntity>();

そのテーブルのみを更新できるようにSet<BaseEntity>();、エンティティをタイプとして強制的に返すにはどうすればよいですか?BaseEntity

4

1 に答える 1

1

それはいけません。EF は、テーブル レベルではなくエンティティ レベルで機能します。したがって、エンティティがタイプの場合、DerivedEntityそれは決してロードされBaseEntityません。添付されたエンティティを変更すると、EF は変更された列に対してのみ更新コマンドを作成するため、テーブルからプロパティのみを変更する場合は、2 番目のテーブルを変更しないでくださいBaseEntity

于 2012-07-23T13:28:58.443 に答える