Linq to sql 如果给定一个ID为LINQ的SQL行,如何将其更新为SQL?
鉴于此模式:Linq to sql 如果给定一个ID为LINQ的SQL行,如何将其更新为SQL?,linq-to-sql,.net-3.5,crud,disconnected,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) 如果我手头有一个水果ID(只是一个int,不是水果对象),我如何更新水果名并清空水果状态ID,而不首先从数据库加载水果对象 注意:这让我了解了很多,但我不知
Fruits
- FruitID INT PK
- FruitName NVARCHAR(30)
- FruitStatusID INT NULL FK: Statuses
Statuses
- StatusID INT PK
- StatusName NVARCHAR(30)
如果我手头有一个水果ID
(只是一个int,不是水果对象),我如何更新水果名
并清空水果状态ID
,而不首先从数据库加载水果对象
注意:这让我了解了很多,但我不知道如何将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风格的注释)这感觉像是过早优化的例子。如果您非常关心性能,请使用直接SQL。如果需要,您可以在单个事务中混合使用ado.net命令执行和LINQ to SQL。这是一个简化的示例。另外,如果我可以很容易地避免仅仅为了更新而从数据库中检索记录,我会——我不认为这是过早的。