Я пытаюсь написать некоторую логику бизнес-уровня для приложения asp.net для вставки или обновления объекта. Я получаю объект из бизнес-уровня, а затем передаю его обратно для сохранения в db. Контекст данных содержится в бизнес-слое, который, как мне кажется, вызывает исключение.Обновление объекта с использованием Linq to SQL
Исключения составляют «Прикрепление или добавление объекта, который не является новым, возможно, был загружен из другого DataContext. Это не поддерживается».
Уверен, что мне не хватает небольшой настройки, но я просто не уверен, что.
это код, который делает вставку и обновление ....
public static void Save(Order order)
{
using (TicketInformationDataContext db = new TicketInformationDataContext())
{
if (order.OrderID <= 0)
db.Orders.InsertOnSubmit(order);
else
{
db.ObjectTrackingEnabled = true;
ITable table = db.GetTable(typeof(Order));
table.Attach(order, true);
db.Orders.Attach(order, true);
}
db.SubmitChanges();
}
}
Похоже, вы прикрепляете объект Order дважды к тому же контексту, который я думаю ... – mservidio
Попробуйте комментировать: ITable table = db.GetTable (typeof (Order)); стол.Атрибут (заказ, правда); – mservidio
Я пробовал комментировать «ITable table = db.GetTable (typeof (Order));' и 'table.Attach (order, true);' и просто имеет 'db.Orders.Attach (order, true); 'Я также пробовал это по-другому с помощью' db.Orders.Attach (order, true); 'закомментировал, и я получаю то же исключение. – Kywillis