可以在不下拉和更新每列的情况下更新行吗?

时间:2010-07-20 19:21:33

标签: c# .net linq subsonic

例如,假设我有一个包含这些列的表

  • ID(主键,自动增量)
  • FirstName(32个字符)
  • 姓氏(32个字符)
  • 图片(包含平均10k数据的二进制JPEG数据)

使用SubSonic和/或LINQ如何只更新记录的FirstName列而不尝试获取Picture列或尝试更新图片列?

现在,我看到这样做的唯一方法就是这样:

var p=Data.People(x=>x.ID==SomeID);
p.FirstName="Foobar";
p.Save();

从我所知道的那条线上发生的事情是,它完全加载了对象并完全保存了对象。我不想为了这么简单的操作而传输超过10k的数据。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

以下是Rob为SubSonic 3预览版提供的一个老例子。

db.Update<Products>().Set(
    x => x.Discontinued == false, 
    x => x.ReorderLevel == 100)
  .Where(x=>x.Category==5)
  .Execute();

http://blog.wekeroad.com/2008/11/12/subsonic-3-0-preview-2

根据您的条款:

db.Update<People>().Set(
    p => p.FirstName == "FooBar")
  .Where(p => p.ID == SomeId)
  .Execute();