Вытащить транзакции по дате в Entity Framework - PullRequest
1 голос
/ 24 июня 2011

Чтобы обрабатывать наши ежедневные транзакции на сервере бэк-офиса, мне нужно извлечь транзакции из базы данных веб-сервера. Каков рекомендуемый подход для извлечения всех записей за данную дату в поле DateTime на SQL Server?

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.

Ответы [ 2 ]

1 голос
/ 24 июня 2011

В настоящее время вы запрашиваете транзакции, затем выбрасываете результат и создаете новый экземпляр 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 голосов
/ 17 сентября 2012

Вы могли бы использовать это?

var transactions = from i in db.Transactions
                   where i.TransactionTimestamp == EntityFunctions.TruncateTime(transactionDate)
                   select i;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...