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);

你知道为什么吗?谢谢

c#左连着几张桌子

对不起,我的问题。我找到了解决办法。

必须在字段前用(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);

非常感谢。