2015-07-21 130 views
1

我想更新LINQ to SQL中的一列。我的查詢是這樣的: -更新LINQ to SQL的操作

private void UpdateCourse() 
{ 
     OperationDataContext OdContext = new OperationDataContext(); 
     //Get Single course which need to update 
     COURSE objCourse = OdContext.COURSEs.Single(course => course.course_name == "B.Tech"); 
     //Field which will be update 
     objCourse.course_desc = "Bachelor of Technology"; 
     // executes the appropriate commands to implement the changes to the database 
     OdContext.SubmitChanges(); 
} 

我的問題是第一次從符合條件的課程記錄它比它更新它。這是正確的方法?或者SP是正確的解決方案。

建議!

+0

這可能會幫助你:http://www.codeproject.com/Articles/358445/Most-efficient-way-to-update-with-LINQ-to-SQL –

回答

1

這並不重要。無論哪種方式將工作。如果你問哪一個更高效,存儲過程通常更高效,但上面的更新工作得很好,並且保留了應用程序代碼中的所有更新邏輯。

至於什麼得到更新,運行SQL分析器,你會看到LINQ如何根據數據庫更新語句,並自己衡量選項。

+0

是的,兩者都可以正常工作。但是哪一個快速高效呢?假設我在表中有15列,所有都是varchar(max)比LINQ TO SQL首先獲取所有列,並且更新意味着2擊中DB。哪一個(上面提到的方法或存儲過程)是快速和首選的? –

+0

就像我曾經說過的那樣,存儲過程總是更有效率......問題在於LINQ的效率如何。對於你想要做的事情,爲了更新一個記錄和許多文本字段,存儲過程總是會更快,但是LINQ讀取/更新不應該是低效的...... –