我正在尝试做一个博客项目,我正在使用ado.net,我有3层架构。
在一个类库中,我有User
和Comments
等类:
public class User
{
public int userID{ get; set; }
public string userName{ get; set; }
public string userPassword { get; set; }
public string userMail{ get; set; }
}
public class Comments
{
public int ID { get; set; }
public int userID{ get; set; }
public string commentHeader{ get; set; }
public string commentContent{ get; set; }
}
我想在userName
课程中拥有Comments
属性。我决定在Comments
班级中创建一个开放的属性。
因为我会在用户界面中显示这些内容,并希望看到UserName
以及UserID
;为了更好地了解谁发送此评论。
我如何创建以下内容?
public string userName
{
get
{
return //(what I have to write here)
}
}
答案 0 :(得分:2)
有多种方法可以做到这一点。
假设您的代码中包含User
列表,您可以查询该列表并检索您的媒体资源中的UserName
。类似的东西:
public string userName
{
get
{
return userList.Single(r=>r.UserID == this.UserID).UserName; // Use single
//if you are sure there's going to be a single record against a user ID
//Otherwise you may use First / FirstOrDefault
}
}
或
您可以使用合成并将User对象放在Comments类中。
public class Comments
{
public int ID { get; set; }
public User user { get; set; } // User object in Comments class
public string commentHeader{ get; set; }
public string commentContent{ get; set; }
}
然后在你的财产中你可以做到:
public string userName
{
get
{
return user.UserName;
}
}
答案 1 :(得分:0)
public string userName
{
get
{
return userList.FirstOrDefault(user => user.userID == userID).userName;
}
}
其中userList是
List<User> userList;