無法將類型“System.Nullable`1”強制轉換為類型“System.Object”。LINQ to Entities 僅支持強制轉換 EDM 基元或枚舉類型。


 

 

 在一個項目中使用LINQ和EF時出現了題目所示的異常,搜索了很多資料都找不到解決辦法,主要是因為EF方面的知識欠缺。

 先將情況記錄如下,以供以后參考。

 查詢主要設計兩張表,由外鍵關聯:

  

在進行下面的查詢時,出現異常:無法將類型“System.Nullable`1”強制轉換為類型“System.Object”。LINQ to Entities 僅支持強制轉換 EDM 基元或枚舉類型。

 public ActionResult GetIpSegments()
        {
            //List<Ipsegment> ipsegments = (from s in deviceDB.Ipsegment select s).ToList();
            var ipsegments = from d in deviceDB.DeviceCategory
                             join s in deviceDB.Ipsegment
                             on d.devicecategoryid equals s.devicecategoryid
                             select new
                                        {
                                            devicecategoryid1 = s.devicecategoryid,
                                            devicecategoryname1 = d.devicecategoryname,
                                            ipsegment = "202.115.242." + s.ip_head + "-202.115.242." + s.ip_end
                                        };

            return Json(ipsegments, JsonRequestBehavior.AllowGet);
        }

 后來,對查詢做了修改,才成功。修改后的查詢如下所示:

    public ActionResult GetIpSegments()
        {
            var ipsegments = from s in deviceDB.Ipsegment
                             select new
                             {
                                 s.devicecategoryid,
                                 s.DeviceCategory.devicecategoryname,
                                 s.ip_head,
                                 s.ip_end
                             };

            return Json(ipsegments, JsonRequestBehavior.AllowGet);
        }

這其中的原因,現在還不了解,等了解后再作補充。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM