我需要修改linq查詢以包含來自外鍵相關表的值。 原來的查詢是:Linq查詢修改以在相關表中包含值
var query = from n in context.Observations
select n;
我有另一個表ObservationsScreening這是1 - 許多人的意見,並含有ObservationsGuid場。 我想在ObservationsScreening表中包含「Status」字段,但是如果ObservationScreening記錄沒有ObservationScreening記錄,我仍然想要返回Observations的數據。 我一直在使用這樣的嘗試加入:
var query = from n in context.Observations join s in context.ObservationScreenings on n.GUID equals s.ObservationGuid
select n;
但我無法得到我需要的價值,當我嘗試填充我的DTO:
SortablePaginatedList<DTO.ObservationReportObservation> results = new SortablePaginatedList<DTO.ObservationReportObservation>(query.Select(u => new DTO.ObservationReportObservation()
{
ObservationGuid = u.GUID,
CarrierName = u.CompanyName,
DOTNumber = u.DOTNumber,
KYUNumber = u.KYUNumber,
Status = u.Verified ? "Verified" : "Unverified",
TestResult = u.ObservationScreenings.Status,
ObservedBy = u.ObservedBy,
WeighStation = u.WeighStation.Name,
ObservedDate = u.ObservedDate,
VehiclePlateNumber = u.VehiclePlateNumber
}), Page, PageSize, SortBy, Ascending);
我得到一個消息「Sytem.Collections.Generic.Icollection不包含狀態的定義,並沒有擴展方法 觀察報告觀測類別是:
public class ObservationReportObservation
{
public Guid ObservationGuid { get; set; }
public string CarrierName { get; set; }
public int? DOTNumber { get; set; }
public string KYUNumber { get; set; }
public string Status { get; set; }
public string TestResult { get; set; }
public string ObservedBy { get; set; }
public string WeighStation { get; set; }
public DateTime ObservedDate { get; set; }
public string VehiclePlateNumber { get; set; }
}
不e有2個狀態。實際稱爲狀態的類中的一個指的是不同的字段,並且它正常工作。 TestResult(在ObservationScreening表中也稱爲狀態)是我要添加的字段。 有沒有人對我如何做到這一點有任何建議?包括也許? 在此先感謝。
錯誤是說你的'DTO.ObservationReportObservation'類中根本沒有'Status'方法/屬性。也許你錯過了某些東西,或者這是一個語法錯誤,你的方法從例如小寫字母或類似的東西?您可以考慮共享該類的構造函數代碼,以便我們可以進一步幫助您。 –
你能寫你的ObservationScreenings類嗎? – Kahbazi
「* Observations Scoringing's 1-many to Observations **從我看到的情況來看,情況正好相反,所以'u.ObservationScreenings'是一個集合,它也被錯誤信息所指示。 –