namespace Data.TEST
{
/// <summary>
/// 資料操作基類
/// </summary>
public abstract class TESTRepositoryBase
{
/// <summary>
/// 資料庫基類
/// </summary>
protected Entity.TEST.LinqTESTDataContext _db = (Entity.TEST.LinqTESTDataContext)DbFactory.Intance("TEST", System.Threading.Thread.CurrentThread);
/// 統一送出動作
protected virtual void SubmitChanges()
{
ChangeSet cSet = _db.GetChangeSet();
if (cSet.Inserts.Count > 0
|| cSet.Updates.Count > 0
|| cSet.Deletes.Count > 0)
{
try
{
_db.SubmitChanges(System.Data.Linq.ConflictMode.ContinueOnConflict);
}
catch (System.Data.Linq.ChangeConflictException ex)
foreach (System.Data.Linq.ObjectChangeConflict occ in _db.ChangeConflicts)
{
// 使用目前資料庫中的值,覆寫Linq緩存中實體對象的值
occ.Resolve(System.Data.Linq.RefreshMode.OverwriteCurrentValues);
// 使用Linq緩存中實體對象的值,覆寫目前資料庫中的值
occ.Resolve(System.Data.Linq.RefreshMode.KeepCurrentValues);
// 隻更新實體對象中改變的字段的值,其他的保留不變
occ.Resolve(System.Data.Linq.RefreshMode.KeepChanges);
}
_db.SubmitChanges();
}
}
}
}