0

前提: ASP.NET プロジェクトに Entity Framework、リポジトリ パターン、および MVP を使用しています。

質問: MVP パターンで、ビューに List<T> 型のプロパティを作成する方法を教えてください。ここで、T は Entity Framework によって生成されたデータ型です。

以下のコードで、List<TeamMember> の「TeamMember」は、SQL テーブル TeamMembersTable に基づいて Entity Framework によって作成されたクラスです。ここでの問題は、View に List<T> プロパティを作成していることです。T は、Entity Framework モデルのデータ型です。ビューはモデルレイヤーのデータ型に依存するようになったため、これは関心の分離に違反しているようです。このシナリオでビューとモデルを完全に分離するにはどうすればよいですか?

注:単純な TextBox の場合、データ型が String や DataTime などの .NET 型であるため簡単です。ただし、View で作成するプロパティの DataType がモデルからのものである場合、データ型に関する限り、View は Model とより密接に結合されているようです。

//***************Simplified Code Sample*******************//
using Model;

namespace View
{
    public interface IEmployeeView
    {
        List<TeamMember> TeamMembers { set; }
    }
}
4

1 に答える 1

0

TeamMemberクラスを表すビューモデルを導入し、代わりにそれをビューに渡します。

public class TeamMemberViewModel
{
    ...
}

public interface IEmployee
{
    public List<TeamMemberViewModel> TeamMembers { get; set; }
}
于 2012-12-23T20:16:13.043 に答える