Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.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
Entity framework 数据库优先:我应该如何建模父引用子引用父引用?_Entity Framework - Fatal编程技术网

Entity framework 数据库优先:我应该如何建模父引用子引用父引用?

Entity framework 数据库优先:我应该如何建模父引用子引用父引用?,entity-framework,Entity Framework,如果我的主题不太合理,请道歉,但问题是: 在SQL Server中,我有: CREATE TABLE Employee ( Id INT IDENTITY(1,1) , Name VARCHAR(50) NOT NULL ); CREATE TABLE Notes ( Id INT IDENTITY(1,1) ,Employee_Id INT NOT NULL , AddedByEmployee_Id INT NOT NULL , Text VARCHAR(2000) ); ALTER TA

如果我的主题不太合理,请道歉,但问题是:

在SQL Server中,我有:

CREATE TABLE Employee
(
Id INT IDENTITY(1,1)
, Name VARCHAR(50) NOT NULL
);

CREATE TABLE Notes
(
Id INT IDENTITY(1,1)
,Employee_Id INT NOT NULL
, AddedByEmployee_Id INT NOT NULL
, Text VARCHAR(2000)
);

ALTER TABLE Notes
ADD CONSTRAINT pk_Notes
PRIMARY KEY (Id);

ALTER TABLE Notes
ADD CONSTRAINT fk_Notes01
FOREIGN KEY (Employee_Id)
REFERENCES Employee(Id)
ON DELETE CASCADE;

ALTER TABLE Notes
ADD CONSTRAINT fk_Notes02
FOREIGN KEY (AddedByEmployee_Id)
REFERENCES Employee(Id);
因此,员工可以有一个或多个便笺,每个便笺由员工添加

我在实体框架中对此进行了建模,在我的Note.cls中:

public int Id { get; set; }

public string Text { get; set; }

public virtual Employee Employee { get; set; }

public virtual Employee AddedByEmployee { get; set; }
这是我的员工。cls:

public int Id { get; set; }

public virtual List<Note> Notes { get; set; }

所以它期待一个名为Employee_Id1的专栏,但我不确定是什么让它期待这个。我怀疑在这一次之后还会有其他问题。如果有人有任何想法,我很乐意听听。

由于您的字段名不遵循默认约定,您需要告诉EF哪些字段应用于这两个员工导航属性

[ForeignKey("Employee_Id")]
public virtual Employee Employee { get; set; }

[ForeignKey("AddedByEmployee_Id")]
public virtual Employee AddedByEmployee { get; set; }
[ForeignKey("Employee_Id")]
public virtual Employee Employee { get; set; }

[ForeignKey("AddedByEmployee_Id")]
public virtual Employee AddedByEmployee { get; set; }