这是我所有班级的共同结构:
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
。
我的第一个问题是,他们为什么不出现?
而且,我应该怎么做才能让它们出现?
答案 0 :(得分:3)
ObjectDataSources查找指定类型中与更新/插入方法名称的签名和提供的更新/插入参数匹配的方法。
您的SaveOrUpdate
方法位于实例化的类上,而ObjectDataSource将找不到匹配的方法签名。
根据您所拥有的,如果您必须使用ObjectDataSources,您可能需要考虑使用包装器方法。 Example.
答案 1 :(得分:1)
我不太确定,但您可以尝试使用DataObjectAttribute标记此类,使用DataObjectMethodAttribute标记CRUD方法。我没有使用ObjectDataSource
多年,所以可以忘记一些事情。