private decimal GetBankAccountCashierTotal()
{
var company = _context.Company.FirstOrDefault();
return _context.PersonBankAgencyAccount
.Where(p => p.PersonID.Equals(company.PersonID))
.Where(c => c.BankAgencyAccountBalance
.Any(b => b.Reference <= DateTime.Now))
.Select(x => x.BankAgencyAccountBalance
.Where(d => d.Reference.Date <= DateTime.Now)
.OrderByDescending(d => d.Reference)
.FirstOrDefault()
.CurrentBalance)
.sum();
}
を実行することはできません、このメソッドの呼び出しで、私は例外LINQは、これは私の完全な方法で集計を含む式に集約関数またはサブクエリ
An exception of type 'System.Data.SqlClient.SqlException' occurred in Microsoft.EntityFrameworkCore.dll but was not handled in user code
と出力を得る
Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler:Error: An exception occurred in the database while iterating the results of a query. System.Data.SqlClient.SqlException: Cannot perform an aggregate function on an expression containing an aggregate or a subquery.
ありがとう、それは完全に機能しましたが、私はまだ質問がありますか、Microsoftはサブクエリを含むクエリでこのタイプのクエリを実行できるようにしますか、このタイプのクエリを受け入れないとデータベースから発生する問題です –
私は記事で言及した、それは現在のEFコアの制限/バグ/誤ったSQL変換です。たとえば、EF6はそのようなクエリ(および他の多くのもの)を翻訳する際に問題はありません。 –
このコードの問題は、データベースに情報をロードしていることです。マイクロソフトがEFCoreの翻訳を最適化するまで待つ必要があるかもしれません。 –