Как обновить строку SQL, указав идентификатор с LINQ to SQL?

StackOverflow https://stackoverflow.com/questions/830335

Вопрос

Учитывая эту схему:

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

Statuses
 - StatusID      INT PK
 - StatusName    NVARCHAR(30)

Если у меня есть FruitID (только целое число, а не объект Fruit), как мне обновить FruitName и обнулить FruitStatusID без предварительной загрузки объекта Fruit из базы данных?

Примечание. это решение довольно далеко, но я не могу понять, как обнулить столбец FK.

Ответы на C # или VB, спасибо!

Это было полезно?

Решение

Это работает, но кажется излишне сложным:

''//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)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top