Как обновить строку SQL, указав идентификатор с помощью LINQ to SQL?
Учитывая эту схему:
Fruits
- FruitID INT PK
- FruitName NVARCHAR(30)
- FruitStatusID INT NULL FK: Statuses
Statuses
- StatusID INT PK
- StatusName NVARCHAR(30)
Если у меня есть FruitID
в руке (просто int, а не объект Fruit), как мне обновить FruitName
и обнулить FruitStatusID
без предварительной загрузки объекта Fruit из базы данных?
Примечание: это решение довольно далеко, но я не могу понять, как обнулить столбец FK.
Ответы в C# или VB, спасибо!
1 ответ
Решение
Это работает, но кажется излишне сложным:
''//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()
Конечно, есть лучший способ!
(примечание: странный синтаксис комментариев предназначен исключительно для подсветки кода - он не любит комментарии в стиле VB)