Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.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
.NETMVC实体框架:同两个表之间的一对多和多对多?_.net_Asp.net Mvc_Entity Framework_Many To Many_One To Many - Fatal编程技术网

.NETMVC实体框架:同两个表之间的一对多和多对多?

.NETMVC实体框架:同两个表之间的一对多和多对多?,.net,asp.net-mvc,entity-framework,many-to-many,one-to-many,.net,Asp.net Mvc,Entity Framework,Many To Many,One To Many,我有一个.NETMVC应用程序,我在其中创建了用户和公司(用户可以访问的公司)之间的多对多关系 在用户模型中,我添加了一组公司: public virtual ICollection<Company> companies { get; set; } 和导航属性: public virtual Company company { get; set; } public virtual ApplicationUser user { get; set; } 在公司模型中,我还添加了一个

我有一个.NETMVC应用程序,我在其中创建了用户和公司(用户可以访问的公司)之间的多对多关系

在用户模型中,我添加了一组公司:

public virtual ICollection<Company> companies { get; set; }
和导航属性:

public virtual Company company { get; set; }
public virtual ApplicationUser user { get; set; }
在公司模型中,我还添加了一个导航属性:

public virtual Company company { get; set; }
public virtual ApplicationUser user { get; set; }
但是,当我尝试更新数据库时,出现以下错误:

ApplicationUser_company_Target::多重性在角色中无效 关系中的“应用程序用户\公司\目标” “应用程序用户公司”。因为依赖角色属性是 不是键属性,而是 从属角色必须为“*”

在搜索解决方案后,我尝试使用以下内容装饰user.Companys导航属性:

[InverseProperty("usuarios")]
但这并没有解决错误


(附加信息:两个模型都位于不同的名称空间中,用户在myApp.models中,公司在myApp.models.DAL中,但我想这不会影响问题…

据我所知,消息告诉您的是,您的设计代表一对一的关系,必须是一对多

为了做到这一点,您必须将公司模式从以下位置更改为:

public virtual ApplicationUser user { get; set; }
致:

公共虚拟ICollection


我希望这会有所帮助。

为什么要将此添加到Company:public virtual application用户{get;set;}
public virtual ApplicationUser user { get; set; }
public virtual ICollection<ApplicationUser> user { get; set; }
public partial class Company
    {
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
        public Company()
        {
            this.User = new HashSet<User>();
            this.User1 = new HashSet<User>();
        }

        public int Id { get; set; }
        public string Name { get; set; }

        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
        public virtual ICollection<User> User { get; set; }
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
        public virtual ICollection<User> User1 { get; set; }
    }