【问题标题】:Linq Select Statement wont workLinq Select 语句不起作用
【发布时间】:2011-09-16 11:05:40
【问题描述】:

运行以下查询时出现以下错误

public int getPinCount(int terminalId, ref int pinnumber)
{
         using (var dbEntities = new DatabaseAccess.Schema.BMIEntityModel())
         {
              DateTime dateNow = DateTime.Now;
              return (from pins in dbEntities.PinIds
                              where pin.TerminalID.Equals((int)terminalId) 
                              && pin.PinExpireDateTime < (DateTime)dateNow
                              select pins).Count();
         }
         return 0;
}

无法创建常量值 键入“System.Object”。只有原始 类型('例如 Int32、String 和 在这种情况下支持 Guid')。

  • TerminalId = int
  • PinExpireDateTime = 日期时间

有什么想法吗?

【问题讨论】:

  • 出于好奇,您使用的是什么版本的 EF?

标签: c# linq entity-framework entity


【解决方案1】:

如果您比较 ints in: pin.TerminalID.Equals((int)terminalId) 在查询之前将其转换并使用 ==

假设terminalId 是整数

pins.TerminalID == terminalId

我不明白你为什么要将 dateNow 转换为 DateTime 它不需要,因为它已经是 DateTime

【讨论】:

  • 你能给我举个例子吗?
  • 非常感谢 ` 从 dbEntities.PinIds 中的引脚修复它 where (pins.TerminalID == terminalId && pins.PinExpireDateTime
【解决方案2】:

我在这里注意到的几件事。

  1. 您已经使用了pinspin,但我认为它们应该是相同的标识符。这可能只是将您的代码复制到您的问题中的拼写错误。

  2. 您有一些不必要的显式强制转换,并且您正在使用 Equals 方法,而不仅仅是 ==。我不确定你为什么要这样做。 Equals 被 Int32 覆盖,因此它应该与使用 == 运算符相同;它应该工作正常——但我不确定这个错误可能来自哪里。 LINQ to Entities 可能无法支持将 Int32.Equals(int) 推送到 SQL 查询,即使它支持 Int32.== 就好了。

我能想到的唯一其他可能性是 pin.TerminalIDpin.PinExpireDateTime 可能不是您认为的确切数据类型,但您必须自己检查。

不管怎样,你至少可以简化你的代码:

public int getPinCount(int terminalId, ref int pinnumber)
{
     using (var dbEntities = new DatabaseAccess.Schema.BMIEntityModel())
     {
          DateTime dateNow = DateTime.Now;
          return (from pin in dbEntities.PinIds
                  where pin.TerminalID == terminalId
                  && pin.PinExpireDateTime < dateNow
                  select pin).Count();
     }
     return 0;
}

【讨论】:

    猜你喜欢
    • 2021-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-17
    • 2016-07-12
    • 2011-11-04
    相关资源
    最近更新 更多