【发布时间】:2013-11-06 02:53:44
【问题描述】:
好的,我在 LinqPad 中测试过的这个 LINQ 语句有一个错误,它工作正常。错误是:
无法创建“HostelApp.Models.bookingLines”类型的常量值。此上下文仅支持原始类型或枚举类型。
代码在这里:
var availableFBunks = from b in this.bunks
where b.gender == "F" &&
!this.bookingLines.Any(
l => (l.bunkID == b.bunkID) && (l.date == DateTime.Today.AddDays(i)))
select b;
SQL 语句:
-- Region Parameters
DECLARE @p0 NVarChar(1000) = 'F'
DECLARE @p1 DateTime = '2013-11-07 12:00:00 AM'
-- EndRegion
SELECT b.bunkDesc AS Bunk_Name
FROM bunks AS b
WHERE (gender = @p0) AND NOT EXISTS
(SELECT *
FROM bookingLines AS l
WHERE l.bunkID = b.bunkID and (l.date = @p1))
【问题讨论】:
-
能否请包含类定义,也可以试试这个
bunks.Where(b => b.varname <conditions>),如果你能解释一下这个 LINQ 语句的用途,那就太好了。 -
bunks.Where(b => b.gender == "F" && (!this.bookingLines.Any(l => l.bunkID == b.bunkID && l.date == DateTime.Today.AddDays(i))) -
就 linq 语法而言,您的 linq 语句看起来不错,但在如何使用 linq 通过 Entity Framework 查询数据源方面存在一些限制。
-
我从床上跳下来,因为它困扰着我!凌晨四点!大声笑,马修谢谢我早上会回复更多,但我试着按照你说的做,但它不允许我这样做。 Geezer498,这让我很烦恼,就像我说我已经在 LinqPad 中测试过它并且它工作正常!
-
尝试拉出
DateTime.Today.AddDays(i)部分并将其放入查询上方的变量中...由于这是一个非确定性语句,也许它可能与该转换有关... ?
标签: c# asp.net linq asp.net-mvc-4