我需要運行大量的linq查詢,在構造器中運行它們對我有好處。
我有一個查詢:
var query = _cctDBContext.table1
.Select(b => new {
b.Id,
b.SegmentId,
b.Response1,
b.ResponseDescription,
b.ResponseGuidance})
.Where(b => b.SegmentId == SegmentId)
我知道那是匿名的,但是我怎么能在建構式中執行這個呢?
像這樣:
public class SegmentData
{
private readonly sqldbCLSegImportUKSATPTestContext _clDBContext;
private readonly sqldbCCTUKSATPTestContext _cctDBContext;
private readonly IList< Response> ResponseCCTtoAuditResponse;
public SegmentData()
sqldbCLSegImportUKSATPTestContext clDBContext,
sqldbCCTUKSATPTestContext cctDBContext)。
{
_clDBContext = clDBContext。
_cctDBContext = cctDBContext;
// AUDIT RESPONSE PAGE 15
ResponseCCTtoAuditResponse = _cctDBContext.Response
.Select(b => new {
b.ResponseId,
b.SegmentId,
b.Response1,
b.ResponseDescription,
b.ResponseGuidance})
.Where(b => b.SegmentId == 5)
.ToList()。
}
}
我曾嘗試將IList作為表的Entity Framework類的名稱,但這不起作用。任何幫助都將是巨大的
uj5u.com熱心網友回復:
出于某種原因,你專注于在建構式中運行這個查詢。這與此無關。
你的查詢正在創建一個建構式。
你的查詢正在創建一個匿名類的 List,然后試圖將其分配給一個命名的、預先定義的類的 List,即 Response。這是不可能的,因為它們是不同的。
不要創建一個匿名型別,在查詢中命名該型別:
ResponseCCTtoAuditResponse = _cctDBContext.Response。
Select(b => new Response(){ ResponseId = b.ResponseId,
SegmentId = b.SegmentId,
Response1 = b.Response1,
ResponseDescription = b.ResponseDescription,
ResponseGuidance = b.ResponseGuidance}。
).Where(b => b.SegmentId == 5).ToList()。
這假設你所選擇的類確實有與Response類相同的欄位,你似乎是這么說的。或者使用另一種形式的查詢:
ResponseCCTtoAuditResponse = (from r in cctDBContext.Response
where r.SegmentId == 5
select r).ToList<Response>()。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/327595.html
標籤:
