我想验证通过Telerik OpenAccess Mapper生成的属性的(IDataErrorInfo)。
喜欢这个。
public partial class Etage
{
private long _version;
public virtual long Version
{
get
{
return this._version;
}
set
{
this._version = value;
}
}...
现在我想在我的第二个类Etage(也是部分)中覆盖属性“Version”。
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'之间的歧义
答案 0 :(得分:1)
没有办法覆盖分部类中的属性,您需要在派生类中执行此操作。但是,使用派生类可能没有帮助,因为OpenAccess上下文将从基类中检索实例,并且没有简单的方法将它们转换为新类型。
您可以做的是添加一个具有不同名称的属性(在分部类中),该属性执行必要的计算。然而,这意味着您将在模型上暴露两者。为了解决这个问题,您可以通过可视化设计器更改生成的属性的访问修饰符。只需找到属性并将属性窗格中的访问修饰符更改为与public不同的内容。
答案 1 :(得分:0)
这可能有效:
public partial class SubEtage : Etage
{
public override string Beschreibung
{
get { return base.Beschreibung; }
set { base.Beschreibung = value + "GEHT"; }
}
public override string ToString()
{
return String.Format("{0}", Beschreibung);
}
}
并查看链接:
http://www.telerik.com/help/openaccess-orm/openaccess-tasks-howto-single-class-single-table.html
答案 2 :(得分:0)
您可以通过修改其使用的TT templates来控制OpenAccess代码生成器如何创建代码。以下是一些可以让您走上正确轨道的链接: