2013-02-03 53 views
0

是否可以在項目中一起使用LINQ和ADO.NET實體數據模型?我有一個建立在ADO.NET實體數據模型之上的項目,它具有.edmx文件,但我習慣於通過ADO.NET打開連接。使用LINQ和ADO.NET實體數據模型

在MVC項目中一起使用兩者是否存在問題?

回答

1

LINQ(語言集成查詢)是TSQL在C#(是的,我們可以查詢XML,LAMDA表達等的很多,但大多用於TSQL ...),您可以編寫針對LINQ查詢LINQ到SQL(的.dbml)或實體框架( .EDMX)通過創建每個上下文有點差異調用EF Object.AddToObject(o)和LINQ to SQL Object.InsertOnSubmit(o)和.Savechanges()/ Submitchanges () 的LINQ to SQL僅支持MS SQL服務器,但EF可以隨時隨地在支持其他的數據庫以及即MY SQL等

,如果你是在項目中使用任何這些你仍然可以使用老Ado.net您項目通過提供正確的信息的方法或通過打開連接就像我們在過去做了之後傳遞參數調用存儲過程......

+0

謝謝。那麼,您是否使用舊的ado.net和一些.edmx設置?我只是習慣了老辦法。看起來像.edmx這麼簡單,但仍然能夠以優異的結果完成工作。 – user1929393

+0

大部分時間我們都使用LINQ to SQL,因爲我們只爲客戶使用SQL服務器,並且您知道只使用SQL Server,然後LINQ to SQL比EF快......但我們必須大量的編碼舊的方式,就像你必須在SP和C#中我們自己寫CRUD我們使用存儲過程的複雜場景只.... – dnxit

+0

有你曾嘗試在同一個項目中使用EF和Linq到SQL? – user1929393

1

Linq只是一種在C#中編寫SQL的方法。那真的比這更多。但在這種情況下,無論你是否會放入一些sql,你都會使用linq intead,因此就EF而言它是不可知的。或者任何其他的框架。

真正的好處是有點思考,你可以使用一些不同的數據庫爲您的持久性。

+0

所以如果我在項目中使用實體模型(.edmx)的dbcontext,我也可以編寫以下連接與系統沒有問題,使用兩者? (SqlConnection cn = new SqlConnection(connectionString)) { ... cn.Open(); ... } – user1929393

+0

你可以,但你需要思考你的工作。你的模型可能會說一件事,而一些帶外功能則是另一個,就是燉燉的食譜。 –

0

有2種LINQ的

的LINQ的對象和LINQ to SQL的

的LINQ to SQL上的ADO模型無法工作,因爲這需要一個直接鏈接到SQL

但LINQ到對象上ADO車型將工作對象一樣容易,實質的所有其他

這意味着t而不是管理DB中的查詢的構造Linq會讓ADO處理它,你不會看到任何區別

相關問題