排序信息丟失如果在排序操作之后執(zhí)行了任何其他操作,則不能保證這些附加操作中會保留排序結(jié)果。這些操作包括 Select 和 Where 等。另外,采用表達式作為輸入..."/>
溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

LINQ to Entities 查詢注意事項

發(fā)布時間:2020-05-26 14:51:45 來源:網(wǎng)絡(luò) 閱讀:213 作者:鄒君安 欄目:網(wǎng)絡(luò)安全

1> 排序信息丟失

如果在排序操作之后執(zhí)行了任何其他操作,則不能保證這些附加操作中會保留排序結(jié)果。這些操作包括 Select 和 Where 等。另外,采用表達式作為輸入?yún)?shù)的 First 和 FirstOrDefault 方法不保留順序。
如下代碼:并不能達到反序排序的效果

LINQ to Entities 查詢注意事項

using (var edm = new NorthwindEntities())
{
     IQueryable<Customers> cc = edm.Customers.OrderByDescending(c => c.CustomerID).Where(c => c.Region != null).Select(c => c);     foreach (var c in cc)
          Console.WriteLine(c.CustomerID);
}

LINQ to Entities 查詢注意事項

2> 不支持無符號整數(shù)

由于 實體框架不支持無符號整數(shù),因此不支持在 LINQ to Entities 查詢中指定無符號整數(shù)類型。如果指定無符號整數(shù),則在查詢表達式轉(zhuǎn)換過程中會引發(fā) NotSupportedException異常,并顯示無法創(chuàng)建類型為“結(jié)束類型”的常量值。此上下文僅支持基元類型(“例如 Int32、String 和 Guid”)。
如下將會報異常的代碼:

LINQ to Entities 查詢注意事項

using (var edm = new NorthwindEntities())
 {      uint id = UInt32.Parse("123");
      IQueryable<string> produt = from p in edm.Products                                  where p.UnitPrice == id                                  select p.ProductName;      foreach (string name in produt)
            Console.WriteLine(name);
}

LINQ to Entities 查詢注意事項

上面的代碼中,由于id是uint而不是Int32,String,Guid的標量類型,所以在執(zhí)行到where p.UnitPrice ==id這個地方時,會報異常。

3> 不支持引用非標量閉包

不支持在查詢中引用非標量閉包(如實體)。在執(zhí)行這類查詢時,會引發(fā) NotSupportedException 異常,并顯示消息“無法創(chuàng)建類型為“結(jié)束類型”的常量值。此上下文中僅支持基元類型(‘如 Int32、String 和 Guid’)
如下將會報異常的代碼:

LINQ to Entities 查詢注意事項

using (var edm = new NorthwindEntities())
 {
        Customers customer = edm.Customers.FirstOrDefault();
        IQueryable<string> cc = from c in edm.Customers                                where c == customer                                select c.ContactName;         foreach (string name in cc)
               Console.WriteLine(name);
}

LINQ to Entities 查詢注意事項

上面的代碼中,由于customer是引用類型而不是Int32,String,Guid的標量類型,所以在執(zhí)行到where c==customer這個地方時,會報異常。


向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI