首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Telerik OpenAccess -覆盖生成的属性

Telerik OpenAccess -覆盖生成的属性
EN

Stack Overflow用户
提问于 2012-06-23 05:32:05
回答 3查看 879关注 0票数 0

我想验证(IDataErrorInfo)我的属性,它是通过Telerik OpenAccess映射器生成的。

就像这样。

代码语言:javascript
复制
public partial class Etage
{
    private long _version;
    public virtual long Version 
    { 
        get
        {
            return this._version;
        }
        set
        {
            this._version = value;
        }
    }...

现在我想要覆盖我的第二个类Etage (也是partial)中的"Version“属性,如下所示。

代码语言:javascript
复制
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”之间的歧义

EN

回答 3

Stack Overflow用户

发布于 2012-06-27 19:33:55

没有一种方法可以覆盖分部类中的属性,您需要在派生类中重写属性。但是,使用派生类可能没有帮助,因为OpenAccess上下文将从基类检索实例,并且没有一种简单的方法将这些实例转换为您的新类型。

您可以做的是添加一个具有不同名称的属性(在分部类中),它执行必要的计算。然而,这将意味着您将在模型上公开这两个对象。为了解决这个问题,您可以通过可视化设计器更改生成的属性的访问修饰符。只需找到该属性,并在属性窗格中将其访问修饰符更改为不同于public的属性即可。

票数 1
EN

Stack Overflow用户

发布于 2012-06-23 05:50:19

这可能会起作用:

代码语言:javascript
复制
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

票数 0
EN

Stack Overflow用户

发布于 2012-11-10 16:25:30

您可以通过修改OpenAccess代码生成器使用的TT templates来控制它创建代码的方式。以下是一些可以让你走上正轨的链接:

在概念上,这与实现IDataErrorInfo.所需执行的操作相同,即

  • Telerik TV: Customizing Code Generation Templates in OpenAccess ORM
  • How to: Implement INotifyPropertyChanging/ed Interface (C#)

  • How to: Implement INotifyPropertyChanging/ed Interface (VB.NET)
  • Customizing Code Generation
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11164418

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档