如何使用LINQ to SQL更新给定ID的SQL行?

时间:2009-05-06 16:01:22

标签: linq-to-sql .net-3.5 crud disconnected

鉴于此架构:

Fruits
 - FruitID       INT PK
 - FruitName     NVARCHAR(30)
 - FruitStatusID INT NULL FK: Statuses

Statuses
 - StatusID      INT PK
 - StatusName    NVARCHAR(30)

如果我手头有FruitID(只是一个int,而不是Fruit对象),如何在不加载Fruit对象的情况下更新FruitName并清空FruitStatusID数据库第一?

注意:this solution让我走得很远,但我无法弄清楚如何取消FK列。

C#或VB中的答案,谢谢!

1 个答案:

答案 0 :(得分:0)

这有效但似乎不必要地复杂化:

''//initialize the values I'm going to null out to something
Dim Tag As Data_Tag = New Data_Tag() With {
  .Data_Tag_ID = DataTagID, 
  .Last_Error_DateTime = New DateTime(), 
  .Last_Error_Message = "", 
  .Last_Error_Severity_Type_ID = -1 }

''//start change tracking
DB.Data_Tags.Attach(Tag)

''//record changes to these properties (must be initialized above)
Tag.Last_Error_DateTime = Nothing
Tag.Last_Error_Message = Nothing
Tag.Last_Error_Severity_Type_ID = Nothing

DB.SubmitChanges()

当然有更好的方法!

(注意:奇怪的注释语法仅适用于代码highliger - 它不喜欢VB风格的注释)