Я пытаюсь обновить объект с помощью заглушки. Это отлично работает для изменения записей, если я не попытаюсь вернуть значение по умолчанию для столбца. Например: если значение по умолчанию равно 0, я могу изменить значение и из любого значения, кроме нуля, но изменения не сохраняются, если я попытаюсь установить его на ноль. Это код, я использую:Entity Framework: вернуть значение по умолчанию
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 по умолчанию равно нулю (Это DateTime?), И я также может установить любое значение, отличное от NULL, и отладки линии подтверждает, что установлены правильные свойства, они просто не сохранены. Кажется, я что-то упускаю.
Спасибо за любую помощь.
Метод, который я использую, работает для изменений любого значения, отличного от значения по умолчанию. Я думаю, что это потому, что объект отсоединен от повторного подключения, но он обсуждался на http://stackoverflow.com/questions/1612655/entity-framework-updating-with-related-entity – Echilon