c#左连着几张桌子
本文关键字:几张 | 更新日期: 2024-09-21 20:24:27
我有两个表
表A(2个字段。CODART和DES)表B(2个字段.CODART AND PREVEN)
我需要使用2个表进行左联接,并返回json。表B没有记录时我得到了这个错误。
((转换为值类型"System.Decimal"失败,因为具体化的值为null。结果类型的泛型参数或查询必须使用可为null的类型。))
我用这个代码
var lstart = (from art in db.tableA
where art.CODART == 'uno'
join tfa in db.tableB on art.CODART equals tfa.CODART into ArtTfa from AA in ArtTfa.DefaultIfEmpty()
select new
{
art.CODART,
art.DES,
AA.PREVEN
});
return Json(new { lista = lstart }, JsonRequestBehavior.AllowGet);
你知道为什么吗?谢谢
必须在字段前用(Decimal?)强制转换字段。
新的这个代码
var lstart = (from art in db.tableA
where art.CODART == 'uno'
join tfa in db.tableB on art.CODART equals tfa.CODART into ArtTfa from AA in ArtTfa.DefaultIfEmpty()
select new
{
art.CODART,
art.DES,
(Decimal?)AA.PREVEN
});
return Json(new { lista = lstart }, JsonRequestBehavior.AllowGet);
非常感谢。