0

前提:我正在为一个 ASP.NET 项目使用实体框架、存储库模式和 MVP。

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

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

注意:对于简单的 TextBox,这很容易,因为数据类型是 .NET 类型,如 String 或 DataTime。但是,如果要在 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 回答