我设计了一个类似于facebook的网络应用程序。登录后,它显示来自4种不同模型的数据:身份模型,社区模型,表单模型和 FormCommunity模型实际上是一个关系表。为此,我设计了一个名为 CommunityUserViewModel 的ViewModel。这是我的 CommunityUserViewModel 代码。
namespace FYP.ViewModel
{
public class CommunityUserViewModel
{
public IList<Community> Com { get; set; }
public ApplicationUser appuser { get; set; }
public IList<FormCommunity> fcom { get; set; }
public IList<QForm> qf { get; set; }
}
}
现在我正在使用Web API为此应用程序创建一个Xamarin移动应用程序。在this tutorial之后,我生成了一个身份验证令牌。现在,在20:30的时候,我正在使用我讨论的视图模型创建一个类型为 Web API 2控制器的新控制器,并使用Entity Framework ,因为我需要在登录后从这些多个表中播放数据。在创建这个新控制器时,我收到this image中显示的错误。错误表明:
运行所选代码生成器时出错: '无法检索'FYP.ViewModel.CommunityUserViewModel的元数据。在模型生成期间检测到一个或多个验证错误。 CommunityUserViewModel ::实体类型CommunityUserViewModel没有定义键。定义此实体类型的键。 IdentityUserLogin ::实体类型IdentityUserLogin没有定义键。定义此实体类型的键。 CommunityUserViewModel:实体类型:EntitySet 没有定义键的CommunityUserViewModel。
共享 CommunityUserViewModel 中使用的4个模型中的2个的代码。
Community.cs
public class Community{
[Key]
public int CommunityID { get; set; }
public string CommunityName { get; set; }
public string CommunityDomain { get; set; }
public string CommunityAbout { get; set; }
public string CommunityLogo { get; set; }
public int PrivacyID { get; set; }
public string CommunityAdmin { get; set; }
public virtual ICollection<CommunityUser> CommunityUsers { get; set; }
public virtual ICollection<FormCommunity> FormsCommunity { get; set; }
public Community(){
FormsCommunity = new Collection<FormCommunity>();
CommunityUsers = new Collection<CommunityUser>();
}
}
ApplicationUser.cs
public class ApplicationUser : IdentityUser{
public string FirstName { get; set; }
public string LastName { get; set; }
public string UserRole { get; set; }
public string Gender { get; set; }
[DataType(DataType.Date)]
public DateTime DOB { get; set; }
public string ImageUrl { get; set; }
}