在MVP模式中,如何在View中创建List <t>类型的Property,其中T是Entity Framework生成的数据类型?</t>

时间:2012-12-23 19:44:11

标签: c# asp.net entity-framework mvp

前提:我正在为ASP.NET项目使用Entity Framework,Repository Pattern和MVP。

问题:在MVP模式中,如何创建List&lt; T&gt;类型的属性在视图中,T是实体框架生成的数据类型?

在下面的代码中,List&lt; TeamMember&gt;中的“TeamMember”是由Entity Framework基于SQL Table TeamMembersTable创建的类。 这里的问题是我正在创建一个List&lt; T&gt;我的视图中的属性,其中T是我的实体框架模型中的数据类型。这似乎违反了关注点的分离,因为视图现在依赖于我的模型层中的数据类型。如何在这种情况下实现视图和模型的清晰分离?

注意:对于简单的TextBox,它很容易,因为数据类型是.NET类型,如String或DataTime。但是,如果要在View中创建的属性的DataType来自模型,那么就数据类型而言,它似乎使View与Model更紧密地耦合。

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

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

1 个答案:

答案 0 :(得分:0)

引入一个视图模型,它将代表您的TeamMember类,并将其传递到您的视图中,例如

public class TeamMemberViewModel
{
    ...
}

public interface IEmployee
{
    public List<TeamMemberViewModel> TeamMembers { get; set; }
}