Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.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# 使用同一个表的两个外键构建模型_C#_Entity Framework 5_Data Modeling - Fatal编程技术网

C# 使用同一个表的两个外键构建模型

C# 使用同一个表的两个外键构建模型,c#,entity-framework-5,data-modeling,C#,Entity Framework 5,Data Modeling,假设我有一个用户模型,现在我想添加一个朋友模型。我想命名我的FK字段RequestorID和ResponderID。我需要什么样的数据注释或fluent-api映射来实现这一点并防止EF自动生成自己的列 public class Friend { public int FriendID { get; set; } public int RequestorID { get; set; } public int ResponderID { get; set; } pu

假设我有一个
用户
模型,现在我想添加一个
朋友
模型。我想命名我的FK字段
RequestorID
ResponderID
。我需要什么样的数据注释或fluent-api映射来实现这一点并防止EF自动生成自己的列

public class Friend
{
    public int FriendID { get; set; }
    public int RequestorID { get; set; }
    public int ResponderID { get; set; }
    public int FriendStatusID { get; set; }
    public DateTime User1RequestDate { get; set; }
    public DateTime User2ResponseDate { get; set; }
    public virtual FriendStatus FriendStatus { get; set; }


    public virtual User Requestor { get; set; }
    public virtual User Responder { get; set; }

}
试试这个

public class Friend
    {
        public int FriendID { get; set; }
        public int RequestorID { get; set; }
        public int ResponderID { get; set; }
        public int FriendStatusID { get; set; }
        public DateTime User1RequestDate { get; set; }
        public DateTime User2ResponseDate { get; set; }
        public virtual FriendStatus FriendStatus { get; set; }

        [ForeignKey("RequestorID")] //fixed
        public virtual User Requestor { get; set; }
        [ForeignKey("ResponderID")]
        public virtual User Responder { get; set; }
    }

您在第一个数据批注上有语法错误,但仍然有效。谢谢