Я давно застрял с этими проблемами.
Все, что я пытаюсь сделать, это вставить строку в мою БД, если это новая информация - если не обновить существующую.
Я обновил много сущностей в своей жизни раньше - но что не так с этим кодом, мне не понятно (возможно, что-то довольно простое)
Наверное, я не вижу дрова для деревьев ...
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();
}
Edit:
только что проверил 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);
}
но я бы хотел сделать обновления и потерять эти ненужные операторы удаления.