2013-06-11 67 views

回答

9

這並不清楚你的意思是分別使用Linq to Entities和EF。這是一個單獨的庫EntityFramework.dll。如果你想編寫查詢在普通的SQL,你可以用DbSet類的SqlQuery()方法做到這一點:

var users = context.Users.SqlQuery("SELECT * FROM dbo.Users").ToList(); 

在這種情況下EF僅充當映射器,但它不會生成查詢。

UPDATE根據你的意見,你想避免參考Linq。答案是 - 你不能這樣做,因爲EF參考System.Linq命名空間。考慮使用NHibernate和Criteria API。

還記得 - Linq已經融入了語言。最好花一些時間避免它,而不是避免它。 Linq功能非常強大,不僅可以用於數據庫訪問,還可以用於日常記憶收藏,XML,數據集等工作。

+1

+1儘可能地接近你,即使它不是很方便。 –

+0

我想刪除所有引用linq。考慮我不喜歡linq –

+1

@ B413即使不方便,你也可以使用'context.Database.SqlQuery',這幾乎是你可以去的最低級別,並且不使用Linq。在頁面底部有一個示例[這裏](http://msdn.microsoft.com/en-us/data/jj592907.aspx)。 –

4

是的,有可能,但不知道爲什麼你會。如果你要去使用的查詢是這樣的路線:

var users = context.Users.SqlQuery("SELECT * FROM dbo.Users").ToList(); 

如上所說,那麼爲什麼不EF完全拋棄並用較少的開銷使用類似dapper,這是非常容易使用和非常快。不使用linq的情況下使用EF會給你EF的所有不好的部分(膨脹,慢速),而沒有LINQ查詢功能的好處,這使得它非常強大。

相關問題