创建新的开放财产

时间:2012-09-25 06:38:07

标签: c# asp.net ado.net

我正在尝试做一个博客项目,我正在使用ado.net,我有3层架构。 在一个类库中,我有UserComments等类:

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) 
    }
}

2 个答案:

答案 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;