所以我的域名模型与此类似:
public class Product
{
public virtual Tag Methodology { get; set; }
}
然后在webform项目中我更新它:
if (!string.IsNullOrWhiteSpace(ddlMethodology.SelectedValue))
product.Methodology = TagRepo.GetTagById(int.Parse(ddlMethodology.SelectedValue));
else
product.Methodology = null;
但是,当product.Methodology
先前设置为某个对象并且我想将其更改为空时,这不会更新。即product.Methodology = null;
行似乎没有按预期工作。
当我在调试器中运行它时,我发现有时它会起作用,有时它不会。在少量拔毛之后,我意识到这是由于实体框架在运行时为该属性创建的代理类型,并且当我在调试器中检查它时它正在工作。
所以为了解决这个问题,我创建了一个运行良好的hack :(注意:现在是一个else if
)
if (!string.IsNullOrWhiteSpace(ddlMethodology.SelectedValue))
product.Methodology = TagRepo.GetTagById(int.Parse(ddlMethodology.SelectedValue));
else if (product.Methodology != null)
product.Methodology = null;
所以我想我的问题是:
干杯,
查尔斯