我的数据库中有一个User表。
tabUser的结构:intID,strUsername,strPassword
在我的User类中,我想列出我的数据库包含的所有用户。
我尝试了什么:
public List<User> GetAllUsers()
using (var db = new AdventureWorksEntities())
{
return (from u in db.tabUser
select new User{
u.strUsername
}).ToList();
}
用户构造函数:
public class User {
private strUsername;
public User() {}
public User(string username){
this.strUsername = username;
}
public void setUsername(string username){
this.strUsername = username;
}
public string getUsername(){
return strUsername;
}
我希望该方法返回所有用户的列表。 但这不起作用。有什么帮助吗?
答案 0 :(得分:1)
为什么不使用带有username
的构造函数?
return db.tabUser.Select(u => new User(u.strUsername)).ToList();
更新:根据评论,似乎是必须拥有以拥有无参数构造函数并使用属性初始值设定项与Linq-To-Entities。其余的仍然适用:
为什么不使用properties?然后你可以使用你的代码。目前它无效,因为您尝试访问私有字段 strUsername
。
public class User
{
public User() {}
public User(string username)
{
this.UserName = username;
}
public string UserName { get; set; }
}
现在您的代码正常运行(修复了naming/capitalization convention问题):
return (from u in db.tabUser
select new User{ u.Username = u.strUsername })
.ToList();