解決するのに数週間かかった問題があり、解決できませんでした。
2つのメソッドがあるクラスがあります。以下は、データベースから最新の日付を取得することになっています。その日付は、顧客が「何か」に対して行った最新の支払いを表します。
public DateTime getLatestPaymentDate(int? idCustomer)
{
DateTime lastDate;
lastDate = (from fp in ge.Payments
from cst in ge.Customers
from brs in ge.Records.AsEnumerable()
where (cst.idCustomer == brs.idCustomer && brs.idHardBox == fp.idHardbox
&& cst.idCustomer == idCustomer)
select fp.datePayment).AsEnumerable().Max();
return lastDate;
}//getLatestPaymentDate
そして、ここにもう1つのメソッドがあります。これは、前のメソッドを呼び出してLinqクエリを完了し、CrystalReportに渡すことになっています。
//Linq query to retrieve all those customers'data who have not paid their safebox(es) annuity in the last year.
public List<ReportObject> GetPendingPayers()
{
List<ReportObject> defaulterCustomers;
defaulterCustomers = (from c in ge.Customer
from br in ge.Records
from p in ge.Payments
where (c.idCustomer == br.idCustomer
&& br.idHardBox == p.idHardBox)
select new ReportObject
{
CustomerId = c.idCustomer,
CustomerName = c.nameCustomer,
HardBoxDateRecord = br.idHardRecord,
PaymentDate = getLatestPaymentDate(c.idCustomer),
}).Distinct().ToList();
}//GetPendingPayers
ここではコンパイルエラーはスローされませんが、アプリケーションを実行し、2番目のメソッドがフィールドの最初のメソッドを呼び出そうとするとPaymentDate
、ヘッダーに記載されているエラーが発生します。
Linq to Entities does not recognize the method System.DateTime.. and cannot translate this into a store expression
この厄介なエラーから私を遠ざける有用な入力を持っている人はいますか?どんな助けでもありがたいです!
どうもありがとう !