ここでこの例外に関連する質問をいくつか見ましたが、問題の根本原因を理解できるものはありませんでした。では、もう 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 式ストアで認識されないためです。bytestringToString()
ObjGetAllPendingPmntDetailsデータをテーブルにバインドするためにコードで何度も使用されているため、追加された私のモデルの部分クラスです。IDlong の s、10 進数の 'Amount'、boolPmntDtTmの'Amount' の両方があり、残りはすべて 'Ref' を含む文字列です。DatetimeIsDiscard
現在、条件を満たすデータがないため、結果が得られません。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 を満たすデータがないため、いくつかの問題があります。
問題の根本的な原因を理解できないため、提案をいただければ幸いです。