我有四个MVC模型层域类。
namespace MvcMobile.Models.BusinessObject
{
public class Speaker
{
public int SpeakerID { get; set; }
public string SpeakerName { get; set; }
}
public class Tag
{
public int TagID { get; set; }
public string TagName { get; set; }
}
public class Seminar
{
public string Seminar_Code { get; set; }
public string Title { get; set; }
public string Description { get; set; }
public string Room { get; set; }
}
public class Seminar_Detail
{
public string Seminar_Code { get; set; }
public int SpeakerID { get; set; }
public int TagID { get; set; }
public string DateAndTime { get; set; }
}
}
我想通过使用这些类来进行CRUD操作。所以我创建了两个VeiwModel
类。
namespace MvcMobile.ViewModel
{
public class Seminar_Root_ViewModel
{
public Seminar_Subsidiary_ViewModel Seminars { get; set; }
public List<Speaker> Speakers { get; set; }
public List<Tag> Tags { get; set; }
}
public class Seminar_Subsidiary_ViewModel
{
public Seminar Seminar { get; set; }
public List<Seminar_Detail> Seminar_Detail { get; set; }
}
}
对于Controller layer
,我认为我将使用Seminar_Root_ViewModel
来制作整个CRUD操作流程。
我想问的是,这是正确的方式还是正确的方法?
如果你有更优雅的方式来制作model layer and ViewModel layer
,请让我得到建议。
我们将不胜感激。
我们假设我制作了主 - 细节表单设计。
Speaker and Tag
只是下拉列表的查找表或类似的控件。
Seminar
是主数据,Seminar_Detail
是项目网格数据
所以对于这个场景,这个程序需要所有这些类。
如果我的想法错了,请告诉我。
答案 0 :(得分:0)
我唯一能看到的是,如果您不打算重复使用Seminar_Subsidiary_ViewModel
视图模型,可以跳过它。
如果您在另一个视图或ajax调用中需要这两个属性Seminar
和Seminar_Detail
,那么完全可以进行这种分离。
就我个人而言,我不是班级名字的忠实粉丝,但这与这个问题毫无关系。