2011-06-24 41 views
1

为了处理我们在后台服务器上的日常交易,我需要从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了未处理

消息=实体或复杂类型“db_eGovModel.Transaction”不能在一个被构造LINQ to Entities查询。

回答

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; 
0

您可能能够使用这个?

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