【发布时间】:2013-02-10 01:22:45
【问题描述】:
我正在尝试在 EF 5.0 中使用数据库优先方法,但它没有为我创建正确的模型。
这是我的数据结构:
论坛
用户
帖子
关系
问题
主要问题在于Forums 和Posts 表中的一对一关系。该模型不会将ParentForumID 和ReplyTo 识别为可空值,因此会在表(Forum-Forum 和Post-Post)之间创建一对多关系。
此外,当尝试手动更改为一对一关系时,我收到此错误:
错误 113:多重性在关系“FK_Forums_Forums”中的角色“Forum1”中无效。因为从属角色属性不是关键属性,所以从属角色的多重性的上限必须是*。 ...\Models\Entities\Model1.edmx
Visual Studio 中的模型(编辑前)
我尝试使用代码优先的方法,但它产生的数据库结果很差,然后我意识到我可以配置数据库创建的行为,但我找不到解释如何正确配置它的好资源。
我宁愿使用数据库优先的方法,因为它可以让我自定义我的数据库,但它仍然会生成一个带有许多错误的不正确模型。
所以我的问题是:
最好的方法是什么?
哪里可以先学代码,先学数据库?
为什么我的视觉工作室会产生这样的模型?
为什么当我尝试更改模型以适应我的需要时,它给了我之前描述的错误?
在哪里可以了解迁移工具?我可以使用哪些函数来配置数据库创建?
【问题讨论】:
-
我不明白,父论坛与子论坛不应该是一对多吗?以及父帖子到子帖子?有一个 1 对 1 的家长论坛和孩子论坛有什么意义?
标签: c# entity-framework code-first database-first