2011-07-21 6 views
0

DBにテーブル名トランザクションがあります。私は2つのサブクラスTransactionAとTransactionBを持っています。私はここに記載されているようにそれを作った:http://www.robbagby.com/entity-framework/entity-framework-modeling-table-per-hierarchy-inheritance/comment-page-1/#comment-607MS EntityFramework:継承を使用してエンティティを分割する方法は?

私はT4テンプレートを使用して私は自己追跡エンティティを生成しました。

すべては問題ありません。私は生成されたエンティティTransactionAとTransactionBを見ることができますが、私はコンテキストオブジェクト(ObjectContext)でそれらを見ることができません。それは普通ですか?もしそうなら、トランザクションクラスだけがアクセス可能な場合、どのようにコンテキストを使用してテーブルからTransactionBを得ることができますか?

ありがとうございます。

+1

は、例えば、(他の基底クラスに対する言葉ではなく派生クラスに悪くなる)、トランザクションに対してクエリを注意して、 context.Transactions.Count()は、あなたのモデル内の3つの話の間で、ファンキーな束縛を行います。 –

答えて

1

これは予期したとおりです。トランザクションA en Bは、ベーストランザクションから派生したものです。あなたのエンティティモデルでは、このような取引のコレクションを介してそれらにアクセスすることができます。

Context context = new Context(); 
List<TransactionB> list = context.Transactions.OfType<TransactionB>().ToList(); 
+0

はい、私は何をしているのですか、このエンティティをモデルに追加した後、コンテキストにTransactioBコレクションがないのはなぜですか?それはもっと論理的だと思います。 – mimic

+0

私はそれがなぜ正確にわからない。しかしそれは設計によるものです。それはより論理的で、同意できるかもしれません。しかし、私が提供した答えはあなたの質問に答えますね。 –

+0

http://blogs.msdn.com/b/adonet/archive/2007/03/15/inheritance-in-the-entity-framework.aspxでもう少し洞察力を与えることができます –

関連する問題