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 标记此类,并使用DataObjectMethodAttribute标记CRUD 方法。我好久没用了,所以会忘记一些东西。ObjectDataSource

于 2009-11-17T18:10:35.950 回答