1

私はブログ プロジェクトを実行しようとしています。私は ado.net を使用しており、3 層アーキテクチャを使用しています。1つのクラスライブラリには、次のようなクラスが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
    }
}

または

構成を使用して、Commentsクラス内にUserオブジェクトを配置できます。

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

ここで、userListは

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