Mik*_*tar 9 c# asp.net-mvc-4 entity-framework-5
我有一个部分课程,我想做类似以下的事情:
[MetadataType(typeof(UserMetaData))]
public partial class Person
{
public override string PrivateData
{
get
{
return customDecrypt(base.PrivateData);
}
set
{
base.PrivateData = customEncrypt(value);
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是上面的方法不起作用.
有没有办法覆盖基本实体框架类的属性,以允许自定义getter/setter?
Bob*_*son 23
部分类与继承无关,完全与继承override有关.
partial类上的关键字只意味着它可以在同一个程序集中多次声明.这与将每个部分复制partial class到同一文件并删除partial关键字完全相同.由于您无法在同一个类中两次定义相同的属性/函数/ etc,因此即使使用partial关键字,也无法在同一个类的两个独立部分中定义它两次.
override另一方面,在派生类中使用它来表示它们正在替换它们继承的基类的功能.如果它没有显式继承,它继承自object,它允许你覆盖ToString()(以及其他).
执行所需操作的最佳选择是使用自定义T4模板生成加密/解密逻辑,或者将加密属性设置为设计器protected或private设计器中,并手动添加public执行解密的版本.