Entity framework 数据库优先:我应该如何建模父引用子引用父引用?
如果我的主题不太合理,请道歉,但问题是: 在SQL Server中,我有: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
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; }