Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 无法使用Linq to Sql更新单个字段_Asp.net_Linq To Sql - Fatal编程技术网

Asp.net 无法使用Linq to Sql更新单个字段

Asp.net 无法使用Linq to Sql更新单个字段,asp.net,linq-to-sql,Asp.net,Linq To Sql,我很难尝试更新单个字段,而不必在保存之前检索整个记录 例如,在我的web应用程序中,我有一个用于对象的名称和描述字段的就地编辑器。编辑任一字段后,它会将新字段(带有对象的ID值)发送到web服务器。我想要的是Web服务器接受该值和ID,并且只更新一个字段。谷歌告诉我只有两种方法可以做到这一点: 1) 当我得到想要更改的值、值和ID时,从数据库中检索记录,更新c#对象中的字段,然后将其发送回服务器。我不喜欢这个方法,因为它不仅包括一个完全不必要的数据库读取调用(由于我的模式的方式,它包括两个表)

我很难尝试更新单个字段,而不必在保存之前检索整个记录

例如,在我的web应用程序中,我有一个用于对象的名称和描述字段的就地编辑器。编辑任一字段后,它会将新字段(带有对象的ID值)发送到web服务器。我想要的是Web服务器接受该值和ID,并且只更新一个字段。谷歌告诉我只有两种方法可以做到这一点:

1) 当我得到想要更改的值、值和ID时,从数据库中检索记录,更新c#对象中的字段,然后将其发送回服务器。我不喜欢这个方法,因为它不仅包括一个完全不必要的数据库读取调用(由于我的模式的方式,它包括两个表)

2) 将所有字段(主键除外)的UpdateCheck设置为UpdateCheck.Never。这不适合我(我想),因为我的映射层介于Linq到Sql和实体/视图模型层之间。当我将实体转换为linq to sql db对象时,它似乎在更新这些字段,而不管UpdateCheck设置如何。这可能只是因为整数,因为不设置int意味着它是零(不,我不能使用int?代替)


我还有其他选择吗?

使用任何ORM技术,您都将处于这个位置。是的。存储过程是您剩下的唯一选项。L2S的本质是在能够保存整个对象之前需要将其存储在内存中。然而,当检索对象的开销太大时,我只会回到存储过程。(和往常一样,不要过早地进行优化)。使用任何ORM技术,您都会处于这个位置。是的。存储过程是您剩下的唯一选项。L2S的本质是在能够保存整个对象之前需要将其存储在内存中。然而,当检索对象的开销太大时,我只会回到存储过程。(一如既往,不要过早优化)。