Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 引用ApplicationUser并获取多个对象集时出错_C#_Asp.net Mvc_Entity Framework_Asp.net Identity - Fatal编程技术网

C# 引用ApplicationUser并获取多个对象集时出错

C# 引用ApplicationUser并获取多个对象集时出错,c#,asp.net-mvc,entity-framework,asp.net-identity,C#,Asp.net Mvc,Entity Framework,Asp.net Identity,我已经学习了教程,但似乎无法让它发挥作用。我试图实现的是,我有一个客户模型,其中有一个负责人处理客户。该所有者是任何应用程序用户。现在这是我面临的问题: 不支持每种类型有多个对象集。对象设置为 “ApplicationUsers”和“Users”都可以包含类型为的实例 “MyApp.Models.ApplicationUser” 这是客户机模型。我在那里添加了applicationSerid,以便有时更容易直接使用它 public class Client { public int Id

我已经学习了教程,但似乎无法让它发挥作用。我试图实现的是,我有一个客户模型,其中有一个负责人处理客户。该所有者是任何应用程序用户。现在这是我面临的问题:

不支持每种类型有多个对象集。对象设置为 “ApplicationUsers”和“Users”都可以包含类型为的实例 “MyApp.Models.ApplicationUser”

这是客户机模型。我在那里添加了applicationSerid,以便有时更容易直接使用它

public class Client
{
    public int Id { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string Phone { get; set; }
    public string Email { get; set; }

    // Who does this client belong to
    public virtual ApplicationUser User { get; set; }
    public string ApplicationUserId { get; set; }
}
我可以使用脚手架为客户端添加新的控制器和视图。它甚至构建时没有任何问题,但当我运行该站点时,我会得到每种类型的多个对象集错误

脚手架还将客户端添加到ApplicationDbContext(在IdentityModels.cs中设置)。在VS自动生成身份文件后,我没有碰过任何身份文件,所以我不认为它们有问题

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
    public ApplicationDbContext()
        : base("DefaultConnection", throwIfV1Schema: false)
    {
    }

    public static ApplicationDbContext Create()
    {
        return new ApplicationDbContext();
    }

    public System.Data.Entity.DbSet<MyApp.Models.Client> Clients { get; set; }
}
public类ApplicationDbContext:IdentityDbContext
{
公共应用程序上下文()
:base(“DefaultConnection”,throwifvv1schema:false)
{
}
公共静态应用程序上下文创建()
{
返回新的ApplicationDbContext();
}
public System.Data.Entity.DbSet客户端{get;set;}
}

导致每种类型的多个对象集不受支持的原因是什么?我花了好几个小时想弄明白。谢谢。

我发现了许多关于如何解决此问题的建议,它们可能适用于某些情况,但至少对于我在Visual Studio 2015中的项目而言,问题在于脚手架做得不好,在生成的控制器中,代码使用的是“ApplicationUsers”,而不是我在客户端模型中定义的“Users”我猜这是导致冲突的原因。我通过改变控制器代码解决了这个问题

ViewBag.ApplicationUserId = new SelectList(db.ApplicationUsers, "Id", "Email", client.ApplicationUserId);

基本上,控制器中的所有内容都应该是db.Users,而不是自动生成的db.ApplicationUsers


还要确保IdentityModels.cs中的ApplicationDbContext不包含其他用户或ApplicationUsers数据库集。他们不应该在那里。我没有这个问题,但我想VS2013的用户已经看到了这种情况。

试试这些?我搜索了整个项目,没有找到定义了DbSet的其他地方,但我确实找到了问题并解决了它。我将分别添加答案。谢谢你的帮助。
ViewBag.ApplicationUserId = new SelectList(db.Users, "Id", "Email", client.ApplicationUserId);