2013-02-10 82 views
0

我想使用EF 5.0的数据库优先方法,它不会为我创建正确的模型。实体框架数据库 - 首先不会创建正确的模型

这里是我的数据结构:

论坛

Forums

用户

Users

帖子

Posts

关系 Relationships

问题

的主要问题是在Forums和一个一对一关系Posts表。该模型不会将ParentForumIDReplyTo识别为可空,因此会在表格(Forum-ForumPost-Post)之间建立一对多关系。

此外,试图手动更改,以一比一的关系的时候,我得到这个错误:

Error 113: Multiplicity is not valid in Role 'Forum1' in relationship 'FK_Forums_Forums'. Because the Dependent Role properties are not the key properties, the upper bound of the multiplicity of the Dependent Role must be *. ...\Models\Entities\Model1.edmx

在Visual Studio中的模型(编辑前)

The model

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

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

所以我的问题是:

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

  2. 从哪里可以先了解代码,数据库先彻底?

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

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

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

+0

我不明白,应该不是父论坛对孩子论坛是1对多?并且父帖子也发给子帖子了?儿童论坛有1到1个父母论坛有什么意义? – 2013-02-10 01:41:21

回答

0

问题1:这取决于。

如果您已经编写了代码,或者您更愿意首先编写对象,那么转到该路线。

如果另一方面,你更喜欢先做数据库模式,那么就不要那么做。

重要的不是,所以选择最适合你的东西。

0

问题2 - 5:您可以通过多种方式了解这一点。有些人喜欢购买数十本非常好的有关可用的C#编程的EF书籍。

其他人更喜欢参加一个班来引导他们整个实体框架技术。我为一家这样的公司工作,我们有很棒的课程。我不是在这里把一家培训公司推到另一家,所以我会提出一个与我的雇主分开的建议〜复数视力。他们非常好,你可以找到一个代码优先的EF方法培训计划here的链接。这是一门付费课程。

我的方法包括围绕尝试不同的模型进行挖掘,以便了解EF Design Surface的工作原理。因此,我开始喜欢使用DataBase的第一个建模方法,和你一样。只是挂在那里,并继续在工具中撞击,尝试不同的事情。

我可以在有限的基础上为您提供帮助。我无法告诉你为什么EF创建了它的模型,因为我无法知道你做了什么来实现这一目标,现在可以。如果您需要一点教练,请随时通过StackOverflow与我联系。

祝你好运!

相关问题