Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.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# 两个都不是主键时的EF一对一关系_C#_Asp.net Mvc 3_Entity Framework_Entity Framework 4_Linq To Entities - Fatal编程技术网

C# 两个都不是主键时的EF一对一关系

C# 两个都不是主键时的EF一对一关系,c#,asp.net-mvc-3,entity-framework,entity-framework-4,linq-to-entities,C#,Asp.net Mvc 3,Entity Framework,Entity Framework 4,Linq To Entities,我有两个实体需要一起映射。由于它们都是数据库视图,从技术上讲,它们都不是主键 [Table("Name")] public class MemberInfo { [Key] [Column("id")] public string MemberId { get; set; } [Column("first_name")] public string FirstName { get; set; }

我有两个实体需要一起映射。由于它们都是数据库视图,从技术上讲,它们都不是主键

 [Table("Name")]
    public class MemberInfo
    {
        [Key]
        [Column("id")]
        public string MemberId { get; set; }

        [Column("first_name")]
        public string FirstName { get; set; }

        [Column("last_name")]
        public string LastName { get; set; }

        public string Designation { get; set; }

        [Column("full_name")]
        public string FullName { get; set; }
    }



public class ChangeLog
    {
        [Column("ID")]
        public int ID { get; set; }

        [Column("asset_id")]
        public virtual Asset AssetID { get; set; }

        [Column("member_id")]
        public int MemberID { get; set; }

        public virtual MemberInfo MemberInfo { get; set; }

        [Column("comment")]
        public string Comment { get; set; }

        [Column("createdDT")]
        public DateTime CreatedDT { get; set; }
    }
如果我试图从ChangeLog访问MemberInfo,我会收到一个错误,显示:

A relationship multiplicity constraint violation occurred: An EntityReference can have no more than one related object, but the query returned more than one related object. This is a non-recoverable error.

MemberInfo的MemberID字段是唯一的。我需要能够通过MemberInfo属性从ChangeLog访问MemberInfo属性

此错误适用于ChangeLog类中的资产属性 你不写那门课
我认为通过更改该属性,您可以修复此错误

此错误适用于ChangeLog类中的资产属性 你不写那门课
我认为通过更改该属性,您可以修复此错误

不确定这是否能为您解决问题,但您应该在ChangeLog类的MemberID字段中添加ForeignKey属性。我还将在您的标识符字段(ID和MemberId)上添加Key属性,我刚刚在您的标题中注意到,您需要一对一的关系。在这种情况下,您应该在ChangeLog的成员类中添加一个引用字段。现在,根据您的模型规范,可以将多个变更日志链接到一个成员。通过添加该引用,您将强制执行1-1关系。当我在成员中添加对ChangeLog的引用时,会出现一个错误,提示“无效列名'ChangeLog_ID'。”名称表(MemberInfo对象)中指向ChangeLog表的外键列的名称是什么?Ameen是对的,您需要在yoru MemberInfo类中引用ChangeLog,并且您还需要进行一些配置以使其正常工作。Jeff,没有指向ChangeLog表的外键对象。我希望我可以通过使用Changelog中的MemberID字段(对应于MemberInfo中的ID)来访问MemberInfo成员。我不确定这是否能为您解决问题,但您应该在Changelog类的MemberID字段中添加ForeignKey属性。我还将在您的标识符字段(ID和MemberId)上添加Key属性,我刚刚在您的标题中注意到,您需要一对一的关系。在这种情况下,您应该在ChangeLog的成员类中添加一个引用字段。现在,根据您的模型规范,可以将多个变更日志链接到一个成员。通过添加该引用,您将强制执行1-1关系。当我在成员中添加对ChangeLog的引用时,会出现一个错误,提示“无效列名'ChangeLog_ID'。”名称表(MemberInfo对象)中指向ChangeLog表的外键列的名称是什么?Ameen是对的,您需要在yoru MemberInfo类中引用ChangeLog,并且您还需要进行一些配置以使其正常工作。Jeff,没有指向ChangeLog表的外键对象。我希望通过使用Changelog中的MemberID字段(对应于MemberInfo中的ID)可以访问MemberInfo成员