【发布时间】:2009-10-25 07:37:45
【问题描述】:
我正在尝试使用存根更新实体。这适用于更改记录,除非我尝试将值设置回该列的默认值。例如:如果默认值为 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 以外的任何值,并且调试行确认设置了正确的属性,它们只是没有保存.我想我一定错过了什么。
感谢您的帮助。
【问题讨论】:
标签: c# asp.net entity-framework orm