ViewModel的Web API控制器

时间:2017-05-22 18:52:06

标签: asp.net-web-api xamarin xamarin.forms

我设计了一个类似于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; }

}

0 个答案:

没有答案