我在这里看到了一些与此异常相关的问题,但没有一个让我理解问题的根本原因。所以这里我们还有一个...
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
这是一个byte
to a string
as ToString()
LINQ 表达式存储区无法识别。
ObjGetAllPendingPmntDetails
是我的模型中的一个部分类,添加它是因为它在代码中使用太多次来将数据绑定到表。
它两者都有ID
s 为 long,“金额”为十进制,PmntDtTm
as Datetime
,IsDiscard
作为布尔值,其余都是字符串,包括“Ref”。
我没有得到任何结果,因为目前没有数据满足条件。在尝试处理 null 时,我添加了DefaultIfEmpty(ObjNull)
and 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
列。但是存在一些问题,因为该查询没有满足条件的数据以及上面共享的异常。
任何建议都将受到赞赏,因为我无法理解问题的根本原因。