代码之家  ›  专栏  ›  技术社区  ›  shsteimer

如何更新给定id为linq to sql的SQL行?

  •  1
  • shsteimer  · 技术社区  · 17 年前

    给定此架构:

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

    如果我有 FruitID 手头(只是一个int,而不是一个水果对象),如何更新 FruitName 空出 FruitStatusID 不先从数据库加载水果对象?

    注: this solution 让我走得很远,但我不知道如何空出FK列。

    答案是C或VB,谢谢!

    1 回复  |  直到 17 年前
        1
  •  0
  •   shsteimer    17 年前

    这是可行的,但似乎不必要地复杂:

    ''//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风格的注释)

    推荐文章