0

datacontextクラスのコードが自動生成されるアプリケーション(mvc 3)があります。また、機能を拡張する必要があるため、同じ名前の部分クラスを作成しました。しかし、ある種の部分的なプロパティが必要なのに、「voidメソッド」だけが部分的なものとしてマークできることがわかりました。

では、C#でプロパティの機能を拡張する方法はありますか?

更新しました:

コードは次のとおりです。

    public Table<Post> Posts
    {
        get
        {
            // writing info into Trace file
            Log = Console.Out;
            var result = this.GetTable<Post>();
            Log = new LogLinqToSql();
            SubmitChanges();
            return result;
        }
    }

データモデルに変更を加えると、このコードは消えてしまうので、どうすれば「より安全な」場所に移動できますか?

4

2 に答える 2

0

回答フィールドを使用して申し訳ありませんが、投稿は上記のディスカッション用です。

DataContextのプロパティをクラス内の別のプロパティにラップすることはできません

例えば

partial class NewClass
{
    public Table<Post> NewProperty
    {
        get
        {
            DoHouseKeeping();
            return this.PropertyFromOtherPartialClass;
        }
    }
}

クラスのみを部分としてマークする必要があります。

于 2013-01-23T12:55:43.977 に答える
0

The solution for my problem (provide logging) is simple: In the autogenerated code there is a bunch of partial helper methods. And there is a method "OnCreated" which is called when the instance of MyTypeDataContext class is created. So, I just need to do the following:

public partial class WebStoreDataContext
{
    partial void OnCreated()
    {
        // writing info into Trace file
        Log = Console.Out;
        Log = new LogLinqToSql();
        SubmitChanges();
    }
}

If You want to add Attributes to the properties this post provides all the information)

于 2013-01-23T16:30:31.323 に答える