1
我有一個DataGridView和IT僱員的名單附後,財產以後這樣的:
LINQ2SQL:如何通過從datagridview中檢索實體來刪除實體?
IQueryable<Employee> data = (from em in db.Employees
where em.StationID == stationID
select em);
dgvView.DataSource = data;
現在我想選擇的行中的datagridview刪除特定的僱員:
using (PetrolNetwork db = new PetrolNetwork())
{
Employee empl = (Employee)dgvView.CurrentRow.DataBoundItem;
db.Employees.DeleteOnSubmit(empl);
db.SubmitChanges();
}
不驚喜,我有例外「無法刪除未連接的實體」
當我通過以下方式替換此代碼:
Employee employee = (from em in db.Employees
where em.ID == empl.ID
select em).Single();
db.Employees.DeleteOnSubmit(employee);
db.SubmitChanges();
一切工作正常,但在我們sqlprofiler可以看到一個額外的選擇數據庫檢索我們的特定員工,然後從聲明中刪除。
如何刪除我的員工,當我從datagridview從DataBoundItem中獲取它,而沒有任何額外的選擇語句?我可以看到的一種方法是通過ID刪除的自定義sproc。可能還有其他最好的方法嗎?