MVC Web アプリケーション プロジェクトがあり、遅延読み込みが必要です。
virtual
ナビゲーション プロパティのモデル オブジェクトでキーワードを使用しgetmanualylist()
ましたが、リポジトリ レイヤーで呼び出す 1 つのメソッドが必要です。このオブジェクトの関連オブジェクトをinclude
メソッドで取得できます。
多くの Web サイトでナビゲーション フィールドがvirtual
あり、それらをinclude
1 つのコードで使用してオブジェクトを熱心に読み込むことができますが、クエリでメソッドを実行するとクエリが正しく返されることがわかるため、できません。しかし、リストを見たいときはnull
、関連するオブジェクトが返され、熱心な読み込みが機能していないことが示されます。
この問題が発生する理由がわかりません。何が問題なのですか?
public IQueryable<InvoiceItem> GetManuallylist()
{
IQueryable<InvoiceItem> query = null;
query = this.dbContext.Set<InvoiceItem>().Include("PartLocation1").Include("PartContractInfo1");
var list = this.dbContext.Set<InvoiceItem>().Include("PartContractInfo1").ToList();
var list2 = this.dbContext.Set<InvoiceItem>().Include("PartLocation1").ToList();
var list23 = this.dbContext.Set<InvoiceItem>().Include("PartBooklet2").ToList();
return query;
}
これは私の InvoiceItemModel のコードの一部です
public virtual Invoice Invoice1 { get; set; } // Invoice -
public virtual SparePart SparePart2 { get; set; } // SparePart -
public virtual PartBooklet PartBooklet2 { get; set; } // PartBooklet
public virtual PartLocation PartLocation1 { get; set; } // PartLocation -
public virtual PartContractInfo PartContractInfo1 { get; set; } // ContractInfo -
public virtual Project Project1 { get; set; } // Project
public virtual BaseData BaseData1 { get; set; }
public virtual BaseData BaseDataTakingplace { get; set; }
public virtual Personel PersonelTroubleshooter { get; set; }
public virtual Personel PersonelMasterApplier { get; set; }
public virtual Personel PersonelBuildingExpert { get; set; }
そして、これはクエリです:
{SELECT
[Extent1].[id] AS [id],
[Extent1].[invoice] AS [invoice],
[Extent1].[part_code] AS [part_code],
[Extent1].[spare_part] AS [spare_part],
[Extent1].[ProjectId] AS [ProjectId],
[Extent1].[part_count] AS [part_count],
[Extent1].[deliveris_partcount] AS [deliveris_partcount],
[Extent1].[descr] AS [descr],
[Extent1].[part_location] AS [part_location],
[Extent1].[contract_info] AS [contract_info],
[Extent1].[HasSerial] AS [HasSerial],
[Extent1].[HasUselesSpiece] AS [HasUselesSpiece],
[Extent1].[HasQCConfirmation] AS [HasQCConfirmation],
[Extent1].[HasRepair] AS [HasRepair],
[Extent1].[faulty_Reason] AS [faulty_Reason],
[Extent1].[Troubleshooter] AS [Troubleshooter],
[Extent1].[MasterApplier] AS [MasterApplier],
[Extent1].[BuildingExpert] AS [BuildingExpert],
[Extent1].[Takingplace] AS [Takingplace],
[Extent1].[Warrantyperiod] AS [Warrantyperiod],
[Extent1].[DeliveryDateForBuilding] AS [DeliveryDateForBuilding],
[Extent2].[id] AS [id1],
[Extent2].[train] AS [train],
[Extent2].[wagon_number] AS [wagon_number],
[Extent2].[install_date] AS [install_date],
[Extent2].[pickup_date] AS [pickup_date],
[Extent2].[descr] AS [descr1],
[Extent3].[id] AS [id2],
[Extent3].[contract] AS [contract],
[Extent3].[project] AS [project],
[Extent3].[contractor] AS [contractor],
[Extent3].[SupplierId] AS [SupplierId],
[Extent3].[SupplyType] AS [SupplyType],
[Extent3].[request] AS [request],
[Extent3].[request_date] AS [request_date],
[Extent3].[SparePartStatusValue] AS [SparePartStatusValue],
[Extent3].[unit_price] AS [unit_price],
[Extent3].[total_cost] AS [total_cost],
[Extent3].[descr] AS [descr2],
[Extent3].[BaseData_Id] AS [BaseData_Id]
FROM [dbo].[invoice_item] AS [Extent1]
LEFT OUTER JOIN [dbo].[part_location] AS [Extent2] ON [Extent1].[part_location] = [Extent2].[id]
LEFT OUTER JOIN [dbo].[part_contract_info] AS [Extent3] ON [Extent1].[contract_info] = [Extent3].[id]}