ASP.NET ObjectDataSource问题

时间:2009-11-17 18:00:19

标签: asp.net objectdatasource

这是我所有班级的共同结构:

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

我的第一个问题是,他们为什么不出现?

而且,我应该怎么做才能让它们出现?

2 个答案:

答案 0 :(得分:3)

ObjectDataSources查找指定类型中与更新/插入方法名称的签名和提供的更新/插入参数匹配的方法。

您的SaveOrUpdate方法位于实例化的类上,而ObjectDataSource将找不到匹配的方法签名。

根据您所拥有的,如果您必须使用ObjectDataSources,您可能需要考虑使用包装器方法。 Example.

答案 1 :(得分:1)

我不太确定,但您可以尝试使用DataObjectAttribute标记此类,使用DataObjectMethodAttribute标记CRUD方法。我没有使用ObjectDataSource多年,所以可以忘记一些事情。