我正在使用這個EF 6 PLUS庫,我正在嘗試做未來的原始查詢,就像這樣
context.Database.SqlQuery<SomeClass>("query here").Future();
但沒有在該庫這樣的選擇,我也嘗試使用DeferredFirst(),DeferredSingle()這個庫,但沒有運氣的,這些方法都不讓我生插入查詢。
我怎樣才能用這個庫或另一個庫來實作這一目標?
uj5u.com熱心網友回復:
Future并且所有方法都像DeferredFirst擴展方法一樣IQueryable<T>:
public static QueryFutureEnumerable<T> Future<T>(this IQueryable<T> query)
Database.SqlQuery回傳DbRawSqlQuery<T>,它實作了IEnumerable<T>,而不是IQueryable<T>,因此擴展名不適用。無法使用其他查詢批量執行SqlQuerys Future。
您可以通過在執行混合查詢之前打開背景關系連接并在之后關閉它來減輕一些“痛苦”。這可以防止 EF 為它執行的每個單獨查詢關閉和打開連接。這與在可延遲批次中執行查詢不同,但它可能會增加一些效率。
try
{
context.Database.Connection.Open();
...
}
finally
{
context.Database.Connection.Close();
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/335657.html
