Таблица T_CAT выглядит следующим образом:
Код: Выделить всё
CAT_NAME varchar(20) Not Null,
CAT_FUR_COLOR varchar(30) Null,
CAT_FUR_PATTERN varchar(30) Null,
CAT_EYE_COLOR varchar(30) Null,
[...]
Код: Выделить всё
public class Cat
{
public string Name { get; set; }
public string FurColor { get; set; }
public string FurPattern { get; set; }
public string EyeColor { get; set; }
}
Метод update считывает внешний источник в цикле, создавая объект Cat из считанных данных. Затем он обновляет базу данных в соответствии с существующими данными:
Код: Выделить всё
Cat existingCat = CurrentContext.CatRepository.FirstOrDefault(ca => ca.CatName == catObject.CatName);
if (existingCat is null)
{
CurrentContext.CatRepository.Add(catObject);
}
else
{
// Update database if needed
}
Код: Выделить всё
if (existingCat.CatName != catObject.CatName ||
existingCat.FurColor != catObject.FurColor ||
existingCat.FurPattern != catObject.FurPattern ||
existingCat.EyeColor != catObject.EyeColor
/* || [...] */ )
{
existingCat.CatName = catObject.CatName;
existingCat.FurColor = catObject.FurColor;
existingCat.FurPattern = catObject.FurPattern;
existingCat.EyeColor = catObject.EyeColor;
// [...]
}
Код: Выделить всё
existingCat.CatName = catObject.CatName;
existingCat.FurColor = catObject.FurColor;
existingCat.FurPattern = catObject.FurPattern;
existingCat.EyeColor = catObject.EyeColor;
// [...]
Каковы плюсы и минусы любого подхода?