我目前正在尝试对与Model-First MVC中的另一个对象具有一对多关系的对象类进行建模-一个“联系”对象,该对象除其他外还包括(引用?)一个对象或更多“兴趣”,是从完整的兴趣数据库列表中创建联系人时选择的。据我了解,人们使用ViewModel来容纳这种关系,但是我认为我误解了模型与ViewModel之间的关系。
目前,我有一个通讯录模型:
public class Contact
{
public int Id { get; set; }
public string Email { get; set; }
public virtual List<Interest> Interests { get; set; }
public List<int> InterestIds { get; set; }
}
兴趣模型:
public class Interest
{
public int Id { get; set; }
public string Name { get; set; }
}
联系人视图模型:
public class ContactViewModel
{
public int Id { get; set; }
public string Email { get; set; }
public List<int> InterestIds { get; set; }
public List<InterestViewModel> Interests { get; set; }
}
还有一个兴趣视图模型
public class ContactViewModel
{
public int Id { get; set; }
public string Email { get; set; }
public List<int> InterestIds { get; set; }
public List<InterestViewModel> Interests { get; set; }
}
但是我对去往何处的说法有所矛盾。
简而言之,我希望最终结果是我应该能够从“创建”视图中选择一个或多个兴趣(最好带有一系列复选框)以存储在新联系人中,然后从“索引”视图中进行选择筛选联系人列表,根据该列表他们有或没有兴趣。我已经为其中的大多数计划了逻辑,但是暂时应该如何设计我的模型与ViewModel,以最好地适应这种愿景?
答案 0 :(得分:1)
您的Contact
实体存在逻辑错误,应从InterestIds
实体中删除Contact
属性,并向您的ContactId
实体添加名称为Interest
的属性。它为联系人提供外键(从Contact
到Interest
的一对多关系)。但是,如果ViewModel等于Model,则不需要任何ViewModel。