Я застрял с этими проблемами в течение длительного времени.LINQ to Sql: Вставить вместо обновления
Все, что я пытаюсь сделать, это вставить строку в мою БД, если это новая информация - если не обновить существующий.
Я обновил многие объекты в моей жизни раньше, - но то, что случилось с этим кодом, вне меня (возможно, что-то довольно простой) Я предполагаю, что я не могу видеть лес за деревьями ...
private Models.databaseDataContext db = new Models.databaseDataContext();
internal void StoreInformations(IEnumerable<EntityType> iEnumerable)
{
foreach (EntityType item in iEnumerable)
{
EntityType type = db.EntityType.Where(t => t.Room == item.Room).FirstOrDefault();
if (type == null)
{
db.EntityType.InsertOnSubmit(item);
}
else
{
type.Date = item.Date;
type.LastUpdate = DateTime.Now();
type.End = item.End;
}
}
}
internal void Save()
{
db.SubmitChanges();
}
Редактировать: только что проверил ChangeSet, обновления не только вставляются. Сейчас я поселилась с
foreach (EntityType item in iEnumerable)
{
EntityType type = db.EntityType.Where(t => t.Room == item.Room).FirstOrDefault();
if (type != null)
{
db.Exams.DeleteOnSubmit(type);
}
db.EntityType.InsertOnSubmit(item);
}
, но я хотел бы сделать обновления и потерять эти ненужные ВЕЬЕТЕ.
Что такое 'cur'? Он не определен в коде, который вы подключили. –
Можете ли вы рассказать нам, что произошло, когда вы запустили этот код и что вы хотели вместо этого? –
вставляет новую строку - независимо от типа == null или нет и. Каждая строка должна ссылаться на другую комнату. Я пишу веб-сайт asp.net mvc, который отображает класс (в школе), который имеет место в любой комнате. Один класс может быть только в одной комнате. Если, например, инструктор меняется, мне нужно обновить объект, которого нет. В конце концов, у меня есть старая запись, а новая - с введенной правильной информацией. –