Я пытаюсь обновить сущность, используя заглушку. Это прекрасно работает для изменения записей, если я не пытаюсь установить значение обратно в значение по умолчанию для столбца. Например: если значение по умолчанию равно 0, я могу изменить любое значение, кроме нуля, но изменения не сохранятся, если я попытаюсь установить его обратно в ноль. Это код, который я использую:
var package = new Package() {
PackageID = 4
};
...
public static void EditPackage(Package package) {
using(var context = new ShopEntities()) {
context.Packages.MergeOption = MergeOption.NoTracking;
var existing = new Package() {
PackageID = package.PackageID
};
context.AttachTo("Packages", existing);
context.ApplyPropertyChanges("ShopEntities.Packages", package);
context.AcceptAllChanges(); // doesn't make a difference
System.Diagnostics.Debug.WriteLine((package.DateSent.HasValue ? package.DateSent.Value.ToString("D") : "none") + "\t\t" + package.IsReceived);
context.SaveChanges();
}
}
В приведенном выше примере значение DateSent по умолчанию равно null (это DateTime?), И я также могу установить для него любое значение, отличное от null, и строка отладки подтверждает, что установлены правильные свойства, они просто не сохраняются , Я думаю, что я что-то упускаю.
Спасибо за любую помощь.