0

これは私のすべてのクラスに共通の構造です。

public class User
{
    public int ID { get;set; }
    public string User_name { get; set; }
    public string Pass_word { get; set; }
    public string UserTypeCode { get; set; }

    public int SaveOrUpdate()
    {
        int id = -1;

        if (this._ID <=0)
        {
            id = this.Save();
        }
        else
        {
            bool success = this.Update();

            if(success)
            {
                id = this._ID;
            }
            else
            {
                throw new Exception("Update failed!");
            }
        }

        return id;
    }

    private int Save() { }
    private bool Update() { }
    public static User Get(int id) { }
    public static List<User> Get() { }
    public bool Delete() { }
}

私はこれらのクラスをwinformsでスムーズに使用していました。

しかし、ASP.NETで作業しているときに、GridViewのオブジェクトデータソースを構成しようとすると、にメソッド名が見つかりませんData Source Configuration Wizard。つまり、彼らは現れていません。だから私の方法は役に立たなくなった。

すべてのクラスのこの一般的な構造を変更することはできません。私は彼らのために書かれたコードジェネレーターも持っています。そして、私は使用する必要がありますObjectDataSources

私の最初の質問は、なぜ彼らは現れないのかということです。

そして、それらを表示させるにはどうすればよいですか?

4

2 に答える 2

3

ObjectDataSources は、更新/挿入メソッド名の署名と提供された更新/挿入パラメーターに一致する、指定された型内のメソッドを探します。

SaveOrUpdateメソッドはインスタンス化されたクラスにあり、ObjectDataSource は一致するメソッド シグネチャを見つけられません。

あなたが持っているものから、ObjectDataSources を使用する必要がある場合は、ラッパー メソッドの使用を検討することをお勧めします。 例。

于 2009-11-17T18:15:30.153 に答える
1

よくわかりませんが、このクラスをDataObjectAttributeでマークし、CRUD メソッドをDataObjectMethodAttributeでマークしてみてください。私は何年も使用していなかったObjectDataSourceので、何かを忘れることができます。

于 2009-11-17T18:10:35.950 に答える