ここでこの例外に関連する質問をいくつか見ましたが、問題の根本原因を理解できるものはありませんでした。では、もう 1 つ...
var testquery =
((from le in context.LoanEMIs.Include("LoanPmnt")
join lp in context.LoanPmnts on le.Id equals lp.LoanEMIId
where lp.PmntDtTm < date && lp.IsPaid == false
&& le.IsActive == true && lp.Amount > 0
select new ObjGetAllPendingPmntDetails
{
Id = lp.Id,
Table = "LoanEMI",
loanEMIId = lp.LoanEMIId,
Name = le.AcHead,
Ref = SqlFunctions.StringConvert((double)le.FreqId),
PmntDtTm = lp.PmntDtTm,
Amount = lp.Amount,
IsDiscard = lp.IsDiscarded,
DiscardRemarks = lp.DiscardRemarks
}).DefaultIfEmpty(ObjNull));
List<ObjGetAllPendingPmntDetails> test = testquery.ToList();
このクエリでは、次の例外メッセージが表示されます -
タイプ の定数値を作成できません
CashVitae.ObjGetAllPendingPmntDetails
。このコンテキストでは、プリミティブ型または列挙型のみがサポートされています。
変換する SQL 関数ステートメントを追加した後、この例外が発生しました。le.FreqId
これは、LINQ 式ストアで認識されないためです。byte
string
ToString()
ObjGetAllPendingPmntDetails
データをテーブルにバインドするためにコードで何度も使用されているため、追加された私のモデルの部分クラスです。ID
long の s、10 進数の 'Amount'、boolPmntDtTm
の'Amount' の両方があり、残りはすべて 'Ref' を含む文字列です。Datetime
IsDiscard
現在、条件を満たすデータがないため、結果が得られません。null を処理しようとしているときに、次のようにすべてのプロパティを追加DefaultIfEmpty(ObjNull)
して初期化しました。ObjNull
ObjGetAllPendingPmntDetails ObjNull = new ObjGetAllPendingPmntDetails()
{ Id = 0, Table = "-", loanEMIId = 0, Name = "-", Ref = "-",
PmntDtTm = Convert.ToDateTime("01-01-1900"),
Amount = 0, IsDiscard = false, DiscardRemarks = "" };
Union()
このクエリは、他の 5 つのクエリで呼び出されているため、正常に動作する必要があります。ObjGetAllPendingPmntDetails
すべて同じ列を返します。ただし、このクエリには条件と Exception Shared Above を満たすデータがないため、いくつかの問題があります。
問題の根本的な原因を理解できないため、提案をいただければ幸いです。