2

モデルファーストアプローチを使用して作成されたモデルがあります。コンテキストを使用してBookエンティティにアクセスしようとすると、そこにリストされていません。しかし、販売アイテムはリストされています。Bookエンティティをコンテキストに追加するには、どのような変更を行う必要がありますか?

注:詳細については、「例外の原因となるエンティティへの参照の追加」および「Entity Framework:リポジトリ内のサブクラスオブジェクトの取得」を参照してください。

ここに画像の説明を入力してください

モデル

ここに画像の説明を入力してください

コード

ここに画像の説明を入力してください

    static void Main(string[] args)
    {
        string connectionstring = "Data Source=.;Initial Catalog=NerdDinners;Integrated Security=True;Connect Timeout=30";
        using (var db = new MyModelFirstTestContainer(connectionstring))
        {
            Book book = new Book();
            book.AvailabilityStatus = "Available";
            book.Price = 100;
            book.Title = "World visit";

           //db.


        }
4

2 に答える 2

2

Entity Frameworkは、コンテキスト上の継承されたアイテムに対して個別のObjectSetを作成しません。

OfType<T>()代わりに、次のような方法を使用できます。

from b in db.SellingItems.OfType<Book>()
where b.Title = "my title"
select b;

これがOfTypeのMSDNドキュメントです

継承されたエンティティを追加する場合は、親ObjectSetを使用します。

Book b = ...;
db.SellingItems.Add(b);
db.SaveChanges();
于 2012-07-27T10:01:23.157 に答える
1

どうすればそこに追加できるのかわかりませんが、とにかく本当に欲しいですか?

代わりに、「db.SellingItems.OfType()」を使用します。このようにして、すべての本をリクエストし、すでにキャストしてもらいます。db.SellingItemsを呼び出すと、適切なインスタンスを持つすべてのSellingItemが取得されます。

于 2012-07-27T10:01:06.290 に答える