前提:我正在为ASP.NET项目使用Entity Framework,Repository Pattern和MVP。
问题:在MVP模式中,如何创建List< T>类型的属性在视图中,T是实体框架生成的数据类型?
在下面的代码中,List< TeamMember>中的“TeamMember”是由Entity Framework基于SQL Table TeamMembersTable创建的类。 这里的问题是我正在创建一个List< T>我的视图中的属性,其中T是我的实体框架模型中的数据类型。这似乎违反了关注点的分离,因为视图现在依赖于我的模型层中的数据类型。如何在这种情况下实现视图和模型的清晰分离?
注意:对于简单的TextBox,它很容易,因为数据类型是.NET类型,如String或DataTime。但是,如果要在View中创建的属性的DataType来自模型,那么就数据类型而言,它似乎使View与Model更紧密地耦合。
//***************Simplified Code Sample*******************//
using Model;
namespace View
{
public interface IEmployeeView
{
List<TeamMember> TeamMembers { set; }
}
}
答案 0 :(得分:0)
引入一个视图模型,它将代表您的TeamMember类,并将其传递到您的视图中,例如
public class TeamMemberViewModel
{
...
}
public interface IEmployee
{
public List<TeamMemberViewModel> TeamMembers { get; set; }
}