2014-04-29 16 views
0

我試着寫符合查詢,如下所示:得到錯誤而寫遵守LINQ查詢

public static Func<MyDBEntities, string, List<Client>> getCustomers = 
CompiledQuery.Compile(
(MyDBEntities ctx, string strCustCode) => from objCustomer in ctx.Clients 
    select objCustomer); 

,並得到以下錯誤消息:

Creates a new delegate that represent the complied LINQ to Entity query

Error:

There is no implicit reference conversion from MyDBEntities to System.Data.Objects.ObjectsContext

我在這個項目中使用的DbContext。

不明白錯過了什麼。

感謝

回答

0

有沒有辦法當你使用的DbContext API使用CompiledQuery; CompiledQuery僅適用於ObjectContext。如果您使用的是Code First,則很可能使用DbContext API。而且,即使您將使用Database First或Model First模型,Microsoft建議您在新項目中使用DbContext API。

但是,如果您使用EF5,它會帶來自動編譯的查詢,它與CompiledQuery的工作方式非常不同。而不是編寫每個查詢的編寫代碼,然後根據需要調用每個查詢,EF5會將生成的SQL緩存爲後臺進程,然後在執行任何查詢時搜索緩存中已編譯的查詢。

參見:Entity Framework Compiled Query

http://blogs.msdn.com/b/adonet/archive/2012/02/14/sneak-preview-entity-framework-5-0-performance-improvements.aspx

http://www.devproconnections.com/article/entity-framework/entity-framework-5-143875

來自