1

我正在尝试做一个博客项目,我正在使用 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课堂上创建一个开放属性。

因为我将在 UI 中显示这些内容,并且我希望UserName看到UserID; 以便更好地了解谁发送此评论。

我如何创建以下内容?

public string userName
{
    get
    {
       return //(what I have to write here) 
    }
}
4

2 回答 2

2

有多种方法可以做到这一点。

假设您User的代码中有 s 列表,您可以查询该列表并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;
    }
}
于 2012-09-25T06:44:01.087 回答
0
    public string userName
    {
        get
        {
            return userList.FirstOrDefault(user => user.userID == userID).userName;
        }
    }

用户列表在哪里

List<User> userList;
于 2012-09-25T06:44:58.093 回答