我没有找到针对此问题的EF Core解决方案,我只发现了较旧的EF版本,而不是CORE。
我有以下情况:
公司有一个表Employee。
int EmployeeID
字符串FirstName
字符串LastName
现在,每位员工还可以是经理或助理,也可以是... 但是,当然,经理也是员工。 雇员有一个或多个经理,一个经理可以有一个助手,但是一个助手可以属于多个经理。大多数员工没有助理。
现在,在EF Core中,解决此问题的最佳方法是什么?请记住,一个雇员可以有多个经理,一个助理可以属于多个经理。那么是否可以先在一个表中编写代码,还是必须将其拆分?
例如:
员工表,我们添加:
虚拟列表助手
虚拟列表管理器
当我对此进行测试时,它显然无法正常工作,只是您在互联网上找不到很多很好的信息...我想这是很多人不愿意尝试并尝试拆分的东西越多越好?就像制作Employee表一样,您可以在Manager表中链接ManagerId以匹配EmployeeId并创建一个联接表,例如EmployeeManager。
只是想知道在带有某些注释的一张表中是否仍然可行。
我想知道如果您先去DB会怎么样?
感谢您对EF Core的了解!
答案 0 :(得分:0)
好吧,我实际上是先在数据库中尝试过的,所以我可以从反向工程师那里学习到普通的POCO
这是slq查询:
创建表员工( EmployeeId INT NOT NULL, 姓氏NVARCHAR(100), GivenName NVARCHAR(100), EmailAddress VARCHAR(254), ContractType CHAR(1), LeaveTimeRemaining DECIMAL(4,2), LeaveTimeTaken DECIMAL(4,2), 主键(EmployeeId) );
创建表ApproverEmployee( ApproverId INT参考:Employees(EmployeeId), EmployeeId INT参考:Employees(EmployeeId), 约束FK_ApproverEmployee主键(ApproverId,EmployeeId) );
创建表ApproverAssistant( AssistantId INT参考:Employees(EmployeeId), ApproverId INT参考:Employees(EmployeeId), 约束FK_ApproverAssistant主键(ApproverId,AssistantId) );
创建表EmployeeRecords( EmployeeRecordId INT非空IDENTITY(1,1)PRIMARY KEY, EmployeeId INT, RecordMessage NVARCHAR(254), RecordModifiedDate SMALLDATETIME, RecordModifiedById INT, 外键(EmployeeId)参考Employees(EmployeeId), 外键(RecordModifiedById)参考员工(EmployeeId) );
通过这种方式保存表,因为批准人和助手的信息都在员工表中。