在EntityFramework中,我如何处理{get;在保存之前设置;}

时间:2017-08-14 12:36:40

标签: entity-framework-6 poco

我正在使用EntityFramework,CodeFirst和POCO类。我想处理属性中的数据,所以,而不是短版本,即{get; set;}使用长版本。这样,我相信我可以在处理数据之后/之前保存/检索。我的印象是,属性get / setter的长版本和短版本都可以使用。数据被保存但不是我想要的方式......即原始数据被保存,而不是我的修改版本。

我有一个简单的类Person如下

Public Class Person
{ 
    public long Id {get;set;}

    string _fName;
    public string FName
    {
         get 
         {
            return Decrypt(_fName); //Where Decrypt decrypts the value
         }
         set
         {
            _fName = Encrypt(value); //Where Encrypt encrypts the value
         }
    }
}

然而,这不起作用。 FName不保存加密值,而是保存原始值。

然后我试了......

Public Class Person
{ 
    public long Id {get;set;}

    string _fName;
    public string FName
    {
         get 
         {
            return Decrypt(_fName); //Where Decrypt decrypts the value
         }
         set
         {
            _fName = Encrypt(value); //Where Encrypt encrypts the value
            value = _fName; //Works up to here... but FName is unaffected.
         }
    }
}

看来,EntityFramework正在将值直接输入FName。我希望能够处理这个值,但宁愿避免重写SaveChanges事件的复杂性。

如何让EntityFramework保存如上所示的_fName值,该值是加密的?

0 个答案:

没有答案