我怎樣才能做到這兩種情況。如何批量插入/更新LINQ到SQL?
目前,我做這樣的事情
public class Repository
{
private LinqtoSqlContext dbcontext = new LinqtoSqlContext();
public void Update()
{
// find record
// update record
// save record (dbcontext.submitChanges()
}
public void Insert()
{
// make a database table object (ie ProductTable t = new ProductTable() { productname
="something"}
// insert record (dbcontext.ProductTable.insertOnSubmit())
// dbcontext.submitChanges();
}
}
所以現在我試圖加載XML文件有什麼噸的記錄。首先我一次驗證一條記錄。然後我想將它們插入到數據庫中,而不是在每個記錄之後執行submitChanges(),而不是在最後做一個批量提交。
所以我有這樣的事情
public class Repository
{
private LinqtoSqlContext dbcontext = new LinqtoSqlContext();
public void Update()
{
// find record
// update record
}
public void Insert()
{
// make a database table object (ie ProductTable t = new ProductTable() { productname
="something"}
// insert record (dbcontext.ProductTable.insertOnSubmit())
}
public void SaveToDb()
{
dbcontext.submitChanges();
}
}
然後在我的業務層,我會做像
for(int i = 0; i < 100; i++)
{
validate();
if(valid == true)
{
update();
insert()
}
}
SaveToDb();
所以假裝我的for循環是對在XML中找到的所有記錄的計數文件。我首先驗證它。如果有效,那麼在插入記錄之前我必須更新表格。然後我插入記錄。
之後,我想保存一切。
我不知道是否可以在每次或每次更新之後進行大量保存。
但我認爲這對於插入一個肯定會起作用。
似乎沒有崩潰,我不知道如何檢查記錄是否被添加到dbcontext。
要添加到湯姆的答案,這裏是大樣的代碼中插入 http://www.dotnetcurry.com/ShowArticle.aspx?ID=323&AspxAutoDetectCookieSupport=1 – 2010-05-09 00:52:59
那麼什麼是LINQ到SQL呢?如果你試圖插入一個又一個,它會忘記它們或什麼? – chobo2 2010-05-09 00:58:49