0

Telerik OpenAccess Mapper によって生成されたプロパティの検証 (IDataErrorInfo) を行いたいと考えています。

このような。

public partial class Etage
{
    private long _version;
    public virtual long Version 
    { 
        get
        {
            return this._version;
        }
        set
        {
            this._version = value;
        }
    }...

今度は、このように 2 番目のクラス 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」の間のあいまいさ

4

3 に答える 3

1

部分クラスのプロパティをオーバーライドする方法はありません。派生クラスでオーバーライドする必要があります。ただし、OpenAccessコンテキストが基本クラスからインスタンスを取得し、それらを新しい型に変換する簡単な方法がないことを考えると、派生クラスを使用しても役に立たない場合があります。

できることは、必要な計算を行う別の名前(部分クラス内)のプロパティを追加することです。ただし、これは、両方がモデルに公開されることを意味します。これを修正するために、ビジュアルデザイナを介して生成されたプロパティのアクセス修飾子を変更できます。プロパティを見つけて、プロパティペインのアクセス修飾子をパブリックとは異なるものに変更するだけです。

于 2012-06-27T11:33:55.233 に答える
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

于 2012-06-22T21:50:19.183 に答える
0

OpenAccess コード ジェネレーターが使用するTT テンプレートを変更することで、コードの作成方法を制御できます。正しい軌道に乗るためのいくつかのリンクを次に示します。

于 2012-11-10T08:25:29.513 に答える