【发布时间】:2012-06-25 05:42:20
【问题描述】:
我想验证通过 Telerik OpenAccess 映射器生成的我的属性 (IDataErrorInfo)。
像这样。
public partial class Etage
{
private long _version;
public virtual long Version
{
get
{
return this._version;
}
set
{
this._version = value;
}
}...
现在我想像这样在我的第二类 Etage(也是部分)中覆盖属性“版本”。
public partial class Etage : IComparable
{
public override long Version
{
get { return _version; }
set { _version = value+200; }
}
// Some Validation in the Setter later...
public override string ToString()
{
return String.Format("{0}", Version);
}
}
然后我得到以下错误:
“Inventar.Model.Etage.Version”和“Inventar.Model.Etage.Version”之间的歧义
【问题讨论】:
-
据我所知,您不能覆盖在该类的部分部分内的部分类上声明的方法 - 只能在子类上
-
我尝试了一个子类,但我无法使用映射器......如果我想插入一个新的“子类”,那么这个类就没有映射......如果我映射它,它将生成新的...
-
您可以使用模板类 - 例如MappedClass
然后使用 Etage : MappedClass 和 SubEtage : MappedClass 然后在 MappedClass 中你也许可以让它工作。我用 AutoMapper 做到了这一点,它很有魅力 -
从未听说过模板课程,我会尝试自己教它并希望它能够发挥作用。我从来没有使用过这种方法......但是谢谢你的提示:)你有没有你的代码中的一个例子,用于覆盖泛型类?
标签: c# .net orm overriding telerik-open-access