假設有一個BindingSource的設置這樣一個DataGridView:提交更改
在一個winform,我們添加使用設計,稱爲myBindingScource一個BindingSource的對象。 然後在Form.Designer.cs我們將其添加到InitializeComponents()
myBindingSource.DataSource = typeof(MyLinq.Person); //Mylinq is the autogenerated Linq Model/Diagram
後來,在窗體本身我們做:
myDataView.DataSource = myBindingSource;
,然後我們有一個填充網格的方法...
using (myDataContext mdc = new MyDataContext())
{
myDataView.DataSource = from per in mdc.person
select per;
}
作爲旁白,我已經設置了設計時間的列,並且一切都顯示正常。 由於LINQ 2 SQL沒有返回匿名的「名爲myDataView」是可編輯的,而這裏來的問題...
的問題是:我怎麼堅持這些變化?
數據網格中有幾十個事件,我不確定哪一個更合適。即使我嘗試了其中一個事件,但仍然不知道我需要執行哪些代碼才能將這些更改發回給數據庫以便保留更改。我記得早在ADO.NET DataSet的日子裏,你會做dataadapter.Update(dataset);
也可以設想,無論是恢復和堅持()是在業務層和方法簽名如下所示:
public void LoadMyDataGrid(DataGridView grid);
該方法採用以下形式的網格,並使用上面顯示的LINQ2SQL查詢填充它。
現在我想創建一個方法是這樣的:
public void SaveMyDataGrid(DataGridView grid); // or similar
的想法是,這種方法並不是在同一類(形式),許多例子往往認爲一切都在一起。
我對「//保存此人」部分代碼感興趣。 我有一個來自數據庫的人物,並被放置在一排。該行已被編輯。現在我想讓LINQ把這些變化放回去。在NHIBERNATE等人中,每個類/對象都有「.save()」或「.persist()」方法。但我不知道如何告訴LINQ(通過閱讀下面的cloggings示例),更新人物對象。 – 2009-10-27 10:31:56
我在這裏找到了解決方案(附件):http://geekswithblogs.net/michelotti/archive/2007/12/17/117791.aspx – 2009-10-27 10:59:04