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

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

  •  1
  • Earlz  · 技术社区  · 14 年前

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

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

    使用亚音速和/或LINQ,如何仅更新记录的FirstName列而不尝试获取Picture列或尝试更新Picture列?

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

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

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

    1 回复  |  直到 14 年前
        1
  •  3
  •   Jürgen Steinblock    14 年前

    这里有一个旧的例子从罗伯亚音速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();