我正在使用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值,该值是加密的?