2011-12-13 94 views
-1

的LINQ刪除特定的列到實體查詢通過匹配的條件

'LINQ到實體從表

public ActionResult deleteChecks(string checkValue) 
    { 
     check_master checks = (from table in db.check_master 
           where table.check_code == checkValue 
           select table).First(); 
     //now how to delete/remove checks.mcheck 

     return View("Edit"); 
    }` 

刪除從表中特定的列只需要更新與空單列元素值(選中的行)check_master

回答

0

我相信Linq to Entities只支持DML,它不支持DDL操作。 所以你將不得不使用存儲過程或ADO.NET原始查詢。

編輯

,你可以做簡單的更新這樣的:

public ActionResult deleteChecks(string checkValue) 
{ 
    check_master checks = (from table in db.check_master 
          where table.check_code == checkValue 
          select table).First(); 

    checks.mcheck = null; 
    db.SaveChanges(); 

    return View("Edit"); 
}` 
+0

假設我想在我們的案例中刪除整行「檢查」,然後我可以做一個類似於db.check_master.Remove(檢查)的查詢;但是在我的問題中,我想更新我的表匹配(條件)行與mcheck列的「空值」 – RollerCosta

+0

我不知道我理解你...所以你不想做物理刪除表列,你只是想在這個列中爲所有行設置NULL? – rouen

+0

是的,我不想刪除整列,我只是想更新該列的元素(選中)。假設我有一個值爲'1','2','4'的列,現在我想用NULL – RollerCosta

0

實體框架,唯一不變的表格式工作。 請告訴你,你的全球目標是什麼,可能有一些更合適的方式來做到這一點。

更新時間:

foreach(var chm in db.check_master) 
{ 
    chm.mcheck = null; 
} 
db.SaveChanges(); 
0

您可以設置單個屬性(映射到列)爲空,並將其保存到數據庫中

foreach(check_master check in checks) 
{ 
    check.mcheck = null; 
} 

db.SaveChanges(); 
0
using (NorthwindDataContext db = new NorthwindDataContext()) 

{

// Retrieve the existing entity. Database Call 1 

Product product = db.Products.First(p => p.ProductID == 1); 



// Change the properties. LINQ to SQL knows 

// these specific properties have changed. 

product.UnitsInStock = 14; 



// Flush the changes. Database Call 2 

db.SubmitChanges(); 

}

+0

我在做什麼..... check_master checks = db.check_master.First(a => a.check_code == checkValue); db.DeleteObject(檢查); .....但在我的控制器有沒有支持使用DeleteObject(甚至沒有intellisense)....我缺少使用我的代碼中的任何程序集 – RollerCosta

+0

首先明確你希望更新或刪除 – Neha

+0

http://stackoverflow.com/questions/1217052/entity-framework-delete-object-problem檢查了這一點 – Neha