按实体框架中的日期提取交易

时间:2011-06-24 18:28:07

标签: entity-framework datetime

为了处理后台服务器上的日常事务,我需要从Web服务器的数据库中提取事务。在SQL Server上的DateTime字段中提取给定日期的所有记录的建议方法是什么?

var transactions = from i in db.Transactions
                   where i.TransactionTimestamp.Year == transactionDate.Year && 
                         i.TransactionTimestamp.Month == transactionDate.Month && 
                         i.TransactionTimestamp.Day == transactionDate.Day
                   select new Transaction();

当我尝试上述操作时出现以下错误:

  

System.NotSupportedException未处理

     

Message =无法在LINQ to Entities查询中构造实体或复杂类型“db_eGovModel.Transaction”。

2 个答案:

答案 0 :(得分:1)

您当前正在查询事务,然后抛弃结果并从头开始创建一个新的Transaction实例 - 这不是您想要的,也会导致运行时错误,因为没有等效的事务SQL端的实例。

而只是返回您查询的实体 - 试试这个:

var transactions = from i in db.Transactions
                   where i.TransactionTimestamp.Year == transactionDate.Year && 
                         i.TransactionTimestamp.Month == transactionDate.Month && 
                         i.TransactionTimestamp.Day == transactionDate.Day
                   select i;

答案 1 :(得分:0)

您可以使用它吗?

var transactions = from i in db.Transactions
                   where i.TransactionTimestamp == EntityFunctions.TruncateTime(transactionDate)
                   select i;