抱歉,如果我的主题不太有意义,但这是问题所在:
在 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);
因此,员工可以有一个或多个笔记,并且每个笔记都由员工添加。
我在 Entity Framework 中对此进行了建模,并在我的 Note.cls 中对此进行了建模:
public int Id { get; set; }
public string Text { get; set; }
public virtual Employee Employee { get; set; }
public virtual Employee AddedByEmployee { get; set; }
这是我的 Employee.cls:
public int Id { get; set; }
public virtual List<Note> Notes { get; set; }
(我假设我只需要从employee.cls 中引用一个notes 集合一次)。
目前,当我尝试加载模型时,我得到:
列名“Employee_Id1”无效。
它正在运行以下 SQL:
SELECT
[Extent1].[Id] AS [Id],
[Extent1].[Text] AS [Text],
[Extent1].[Employee_Id] AS [Employee_Id],
[Extent1].[AddedByEmployee_Id] AS [AddedByEmployee_Id],
**[Extent1].[Employee_Id1] AS [Employee_Id1]**
FROM [Notes] AS [Extent1]
WHERE ([**Extent1].[Employee_Id1]** IS NOT NULL)
AND (**[Extent1].[Employee_Id1]** = 684)
所以它期待一个名为 Employee_Id1 的列,但我不确定是什么让它期待。我怀疑在此之后还会有其他问题。如果有人有任何想法,我很想听听他们的意见。