我正在使用 Entity Framework 5,并且我正在编写我希望在现有数据库模式之上使用的代码优先模型。所以,我无法控制架构设计。
我有两张桌子,matters
和users
。该users
表包含用户帐户 - 系统的实际用户。该matters
表包含类似于预定约会或类似性质的数据。
该表在名为 的列中matters
具有指向 的外键。这一列只是说“嘿,这一行指定了这个。” 这是一个可选的键 - 事情不必有一个经理。users
manager
users
manager
matter
中的记录模型users
不需要映射回这些事务的属性。
我当前的映射尝试如下所示:
modelBuilder.Entity<Matter>().HasOptional(m => m.ProjectManager).WithRequired().Map(m => m.MapKey("project_manager"));
有了这个,我想说Matter
在模型的属性上有一个可选的 FK,ProjectManager
并且用户必须存在,并且表中的列名matters
被称为project_manager
.
虽然这不起作用,并且生成的 SQL 不正确,但我无法弄清楚如何获得我正在寻找的东西。如果我要编写 SQL,它看起来像这样
SELECT matters.*, users.*
FROM matters
LEFT JOIN users ON matters.project_manager = users.id