У меня есть более глубокий вопрос относительно функциональности отладки функции Linq to Sql SubmitChanges ().
Я хочу сохранить запись в таблице локально кэшированной базы данных (localdbcache: сервер SqlExpress 2008 клиент SqlCE). Перед вызовом SubmitChanges я могу найти новый элемент через DataContext.GetChangeSet (). После вызова Submit Changes элементы для вставки были удалены из ChangeSet. (Это то, что эта функция должна делать.)
Нет конфликтов изменений и нет ошибок в выводе журнала базы данных. Никаких исключений.
Число таблиц остается неизменным.
if ((e.Parameter == null) ||
(!e.Parameter.GetType().Equals(typeof(LibDB.Client.Vehicles))))
{
return;
}
LibDB.Client.Vehicles tmp = e.Parameter as LibDB.Client.Vehicles;
try
{
ChangeSet cs = this._dc.GetChangeSet();
if ((tmp == null) || (this._dc == null)) return;
if (this._dc.Vehicles.Where(veh => veh.Vin == tmp.Vin).Count() == 0)
this._dc.Vehicles.InsertOnSubmit(tmp);
else if (this._dc.Vehicles.Where(veh => veh.Vin == tmp.Vin).Count() == 1)
this._dc.Vehicles.Attach(tmp, true);
else
return;
using (TransactionScope ts = new TransactionScope())
{
try
{
this._dc.SubmitChanges();
//this._dc.Refresh(RefreshMode.OverwriteCurrentValues,
// this._dc.Vehicles);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
if (this._dc.Vehicles.Where(veh => veh.Vin == tmp.Vin).Count() == 1)
MessageBox.Show("Vehicle not saved.");
this.vehSelector.ResetLayout();
}
Буду признателен за любую помощь, так как теряю надежду найти любую ошибку,
Спасибо заранее Уинстон