2010-11-17 60 views
1

我想使用LINQ更新對象的實體,像這樣:如何用linq更新完整對象到實體?

public ActionResult SubmitPool(SwimmingPool Pool) 
     { 

      SwimmingPool IsPool = (from sp in db.SwimmingPool 
            where sp.Id == Pool.Id 
            select sp).First(); 


      if (IsPool != null) { 

       IsPool = Pool; 
        db.SaveChanges(); 
       } 
} 

,但它不...

如果我做:

public ActionResult SubmitPool(SwimmingPool Pool) 
     { 

      SwimmingPool IsPool = (from sp in db.SwimmingPool 
            where sp.Id == Pool.Id 
            select sp).First(); 


      if (IsPool != null) { 

       ----> IsPool.Name = Pool.Name; 
        db.SaveChanges(); 
       } 
} 

它呢!但我想更新完整對象。怎麼做?

回答

2

線之間地圖

IsPool = Pool; 

無助於內的數據;它只是改變參考。
在該行之後,IsPoolPool都指向堆中的同一對象;在你的情況下沒有用。 您必須將每個成員從一個類別專門分配給另一個類別。

1

使用AutoMapper您的視圖模型和LINQ實體

+0

使用AutoMapper會讓他變得非常糟糕!我認爲他應該在更危急的情況下使用automapper,而不是像這樣簡單的, – Stacker 2011-02-21 08:13:02