У меня есть DataSet с таблицами, который я создаю и заполняю из стороннего XML-файла.Я могу получить данные в EF в первый раз, но в следующем файле, который я получаю, таблицы имеют ту же последовательность идентификаторов, что и 0 ... n, мне нужно иметь возможность обновлять таблицы при необходимости, а также вставлять, если они новые.
Обычно я получаю файл задания с элементами, перечисленными в родительском узле
<3rdPartyTag version=2.1>
<Job Info=""><Descriptor info="" />
<JobItems><Items info=""><some more Nodes /></Items></JobItems>
</Job>
</3rdPartyTag>
Мне удалось вставить записи в таблицы с context.SaveChanges ();
Но когда приходит новый файл, обновления не происходит, я получаю сообщение об ошибке, что Id существует, и это нормально - как некоторые таблицы, которые я не хочу обновлять - особенно 3rdPartyTag (только если версия отличается), но я хочуобновить мою работу / элементы - если фактическая работа существует, то я обновляю элементы - но я не хочу перезаписывать то, что есть, я хочу, чтобы версия этого .. Как это сделать?Вопрос 1. Если элементы существуют, а задание отличается, мне нужно вставить записи, но элементы 0..n уже существуют, и я хочу, чтобы они были новыми идентификаторами и соответствовали данным, которые я предоставляю - как это можно сделать просто
Итак, у меня есть 2 вопроса: 1: Как сделать управление версиями определенных таблиц?2: Как использовать EF и заставить его назначать новые ключи элементам ... если новое задание.
сначала упрощенный пример кода
public class Job
{
Int32 Id {get;set;}
string Info {get;set;}
}
class JobItem
{
Int32 JobId {get;set;}
Int32 ItemId {get;set;}
}
class Item
{
Int32 Id {get;set;}
string Info {get;set;}
}
class descriptor
{
Guid Id {get;set;}
Int32 JobId {get;set;}
}
class 3rdPartyTag
{
Int32 Id {get;set;}
string version {get;set;}
}