2010-02-15 63 views
0

在SubSonic3中可以这样做吗?SubSonic3更新问题

_db.Update<Product>() 
    .Set("UnitPrice") 
    .EqualTo(UnitPrice + 5) 
    .Where<Product>(x=>x.ProductID==5) 
    .Execute(); 

我需要的东西,这LIK:

UPDATE  Blocks 
SET   OrderId = OrderId - 1 
WHERE  ComponentId = 3 

但SubSonic3

回答

1

我觉得你可以在这里是你展示如何使用一个样本亚音速3

// Linq To Sql可能没有见过的一件事是能够运行更新 //插入,我一直错过了并且现在使用SubSonic 3.0实现的插入:

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

     db.Insert.Into<Region>(x => x.RegionID, x => x.RegionDescription) 
      .Values(6, "Hawaii") 
      .Execute(); 

和这里link充分论证

+0

TITAN,这是不是真的做我想要的。例如,我想设置一个等于当前值-1的值。在你的榜样,你只是将所有记录虚假和100 ... – 2010-02-23 14:19:56

+0

_db.Update () .SET( X => x.UnitPrice == x.UnitPrice + 5) 。凡(X => x.ProductID == 5) .Execute(); – 2010-02-24 05:23:09

+0

不,不起作用。 Set不接受Lambda表达式。 – 2010-02-24 09:16:59

0

我做它作为一个选择

var model = ClassName.SingleOrDefault(x => x.id == 1); 

model.name = "new name"; 
model.tel = " new telephone; 

model.save();