0

我正在尝试在 EF 5.0 中使用数据库优先方法,但它没有为我创建正确的模型。

这是我的数据结构:

论坛

论坛

用户

用户

帖子

帖子

关系 关系

问题

Forums主要问题是与表中的一对一关系Posts。该模型不将ParentForumIDand识别为可为空值,因此在表 (和)ReplyTo之间创建了一对多的关系。Forum-ForumPost-Post

此外,当尝试手动更改为一对一关系时,我收到此错误:

错误 113:多重性在关系“FK_Forums_Forums”中的角色“Forum1”中无效。因为从属角色属性不是关键属性,所以从属角色的多重性的上限必须是*。...\模型\实体\模型1.edmx

Visual Studio 中的模型(编辑前)

该模型

我尝试使用代码优先的方法,但它产生的数据库结果很差,然后我意识到我可以配置数据库创建的行为,但我找不到一个好的资源来解释如何正确配置它。

我宁愿使用数据库优先的方法,因为它可以让我自定义我的数据库,但它仍然会生成一个包含许多错误的不正确模型。

所以我的问题是:

  1. 这样做的最佳方法是什么?

  2. 哪里可以先学代码,先学数据库?

  3. 为什么我的视觉工作室会产生这样的模型?

  4. 为什么当我尝试更改模型以适应我的需要时,它会给我前面描述的错误?

  5. 我在哪里可以了解迁移工具?我可以使用哪些功能来配置数据库创建?

4

2 回答 2

0

问题 2 - 5:您可以通过多种方式学习。有些人更喜欢购买几十本关于 EF with C# Programming 的非常好的书籍中的一本。

其他人更喜欢上课来引导他们使用整个实体框架技术。我在这样一家公司工作,我们的课程很棒。我不是来推一个培训公司而不是另一个,所以我会提出一个与我的雇主分开的推荐~Plural Sight。它们非常好,您可以在此处找到代码优先 EF 方法培训计划的链接。这是一个付费课程。

我的方法包括只是挖掘尝试不同的模型,因此我了解了 EF Design Surface 的工作原理。结果,我开始喜欢使用数据库优先的建模方法,和你一样。只要挂在那里,继续使用工具,尝试不同的东西。

我也许能在有限的基础上帮助你。我不能告诉你为什么 EF 创建了它所做的模型,因为我不知道你做了什么才能走到这一步,现在可以了。如果您需要一些指导,请随时通过 StackOverflow 与我联系。

祝你好运!

于 2013-02-10T01:42:39.610 回答
0

问题1:视情况而定。

如果您编写了代码,或者您更喜欢先编写对象,那么就走那条路。

另一方面,如果您更喜欢先执行 DB 模式,那么请务必这样做。

没关系,所以选择对你来说最舒服的。

于 2013-02-10T01:31:22.533 回答