4

クラス構造の例

class Order
{
    public int Id { get; set; }     
    public DateTime Date { get; set; }

    public List<OrderDetail> Details { get; set; }
}

class OrderDetail
{
    public int Id { get; set; }
    public int Qty { get; set; }

    public Item Item { get; set; }
}

class Item
{
    public int Id { get; set; }
    public string Name { get; set; }
}

class ElectronicItem : Item
{
    public MoreDetail Detail { get; set; }
}

class MoreDetail
{
    public int Id { get; set; }
    public string SomeData { get; set; }
}

注文オブジェクトにすべてのナビゲーション プロパティを設定するために、次のように記述しました。

context.Orders.Include("Details").Include("Details.Item")

MoreDetail オブジェクトもロードしたいので、試してみました

context.Orders.Include("Details").Include("Details.Item.Detail")

うまくいきませんでした。完全な注文オブジェクトをロードする方法は?

4

1 に答える 1

1

現時点ではできませんが、すでに見つけたように、 User DataVoiceのコミュニティによって要求された機能です。MS Connectにも関連するバグがあります。

派生型のナビゲーション プロパティを熱心に読み込むことはできませんが、個別のクエリで読み込むことができます。

var moreDetails = context.MoreDetails;

EF は、ナビゲーション プロパティを自動的に修正する必要があります。元のクエリで注文のフィルタリングを使用する場合は、そのフィルタを詳細クエリにも適用する必要があります。

var moreDetails = cotnext.MoreDetials.Where(m => m.Item.Order ....);
于 2012-06-13T09:58:31.093 に答える