Linq to Entity Query with Subquery返回错误

时间:2011-05-23 02:28:59

标签: c# linq-to-sql linq-to-entities

我有一个Linq to Entity查询,其子查询返回一个错误,我希望有人可以帮助我。

错误讯息:

"Unable to create a constant value of type 'SmallBusinessManager.Models.TransactionAllocation'. Only primitive types ('such as Int32, String, and Guid') are supported in this context."

Linq查询:

var query = from transactionSelect in smallBusinessManagerDB.Transaction
        select new
        {
         TransactionId = transactionSelect.TransactionId,
         TransactionNumber = transactionSelect.TransactionNumber,
         Amount = transactionSelect.Amount,
         Balance = (from t2 in smallBusinessManagerDB.TransactionAllocation
                    where t2.InvoiceTransactionId == transactionSelect.TransactionId
                    group t2 by t2.TransactionAllocationId into g
                    select g.Sum(p => p.AllocatedAmount))
};

提前致谢,

克里斯

1 个答案:

答案 0 :(得分:0)

试试这个:

var query = 
    from transactionSelect in smallBusinessManagerDB.Transaction
    select new
    {
        TransactionId = transactionSelect.TransactionId,
        TransactionNumber = transactionSelect.TransactionNumber,
        Amount = transactionSelect.Amount,
        Balance = smallBusinessManagerDB.TransactionAllocation
            .Where(t2 => t2.InvoiceTransactionId == transactionSelect.TransactionId)
            .Sum(p => p.AllocatedAmount)
    };