簡體   English   中英

LINQ問題與Equals語句

[英]LINQ issue with Equals statement

我收到以下錯誤:

var answerList = (from answer in db.QuestionAnswers
                 where answer.tLoginID.Equals(tId) && answer.pLoginID.Equals(pId)
                    && answer.Submitted.Equals(submittedVal)
                select answer).ToList();

錯誤是:

無法創建“System.Object”類型的常量值。 在此上下文中僅支持基元類型或枚舉類型。

但是,當我將其更改為:

var answerList = (from answer in db.QuestionAnswers
                 where answer.tLoginID.Equals(tId) && answer.pLoginID.Equals(pId)
                select answer).ToList();

然后我這樣做:

            answerList.Where(x => x.Submitted.Equals(submittedVal));

它有效...我錯過了什么? 對我來說,這些陳述也在做同樣的事情。 但我不確定它為什么會像這樣工作。

更新:

我在看了@SergeyLitvinov提供的關於.Equals的鏈接之后想出來,我檢查的列Submitted實際上是一個Boolean而不是Integer一旦我使類型與我的語句相同。 雖然我確實將它從.Equals更改為==

錯誤來自LINQ to Entities查詢提供程序,它正在嘗試將查詢表達式轉換為SQL語句。 您的第二個示例在測試Submitted.Equals(submittedVal)之前枚舉您的LINQ to Entities查詢,這意味着您在本地內存中使用標准LINQ to Objects(即它未轉換為SQL)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM