设置时,Wrapper类不会保存到数据库

时间:2011-08-03 22:11:03

标签: linq data-binding wrapper

我有一个包装类,用于从我的dbml的一个部分类中的属性中获取和设置代码。包装器的原因是专门的get,它预先格式化值。这是包装器的样子(注意:这不是实际的代码,而是准确地表示除格式之外的所有内容):

partial class Class1
{
    public string PropertyFormatted
    {
        get
        {
            var ret = Property.Substring(1);
            return ret;
        }
        set { Property = value; }
    }
}

此包装器在编辑页面的窗体视图中使用Bind()进行绑定。由于某种原因,包装器的值在更新时设置两次,第二次通过该值重新分配其原始值(导致该属性保持最终不变)。但是,当使用属性本身替换包装器时,保存到数据库没有问题。

任何想法可能是什么原因?

1 个答案:

答案 0 :(得分:0)

dbContext应该通过这种方法自动检测更改:

http://msdn.microsoft.com/en-us/library/system.data.entity.infrastructure.dbchangetracker.detectchanges(v=vs.103).aspx

您可能无意中禁用了自动检测更改或其他类似的操作。尝试手动调用该方法,看看是否有所作为。

祝你好运!