我正在尝试使用EF 5.0的数据库优先方法,但它并没有为我创建正确的模型。
这是我的数据结构:
论坛
用户
帖子
关系
问题
主要问题在于Forums
和Posts
表中的一对一关系。该模型无法将ParentForumID
和ReplyTo
识别为nullables,因此会在表格之间创建一对多关系(Forum-Forum
和Post-Post
)。
此外,当尝试手动更改为One-To-One关系时,我收到此错误:
错误113:在关系'FK_Forums_Forums'中,角色'Forum1'中的多重性无效。由于Dependent Role属性不是关键属性,因此Dependent Role的多重性的上限必须为*。 ... \模型\实体\ Model1.edmx
Visual Studio中的模型(编辑前)
我尝试使用代码优先方法,但它产生了糟糕的数据库结果,然后我意识到我可以配置数据库创建的行为,但我找不到一个很好的资源来解释如何正确配置它。< / p>
我宁愿使用数据库优先方法,因为它允许我自定义我的数据库,但它仍会生成一个错误的模型,但有很多错误。
所以我的问题是:
这样做的最佳方法是什么?
我在哪里可以先学习代码,先把数据库彻底学习?
为什么我的视觉工作室会制作这样的模型?
为什么当我尝试更改模型以满足我的需要时,它会给我前面描述的错误?
我在哪里可以了解迁移工具?我可以用来配置数据库创建的功能吗?
答案 0 :(得分:0)
问题1:这取决于。
如果您已编写代码,或者您希望首先编写对象,则转到该路径。
如果另一方面,您更喜欢首先执行数据库架构,然后通过所有方式执行此操作。
重要的不是,所以选择最适合你的方式。
答案 1 :(得分:0)
问题2 - 5:您可以通过多种方式了解这一点。有些人喜欢购买EF上的几十本非常好的书中的一本,可以使用C#编程。
其他人更喜欢在整个Entity Framework技术上引导他们使用它们。我为一家这样的公司工作,我们有很棒的课程。我不是要把一家培训公司推到另一家培训公司,所以我会提出一个与我的雇主分开的建议~Polyral Sight。它们非常好,您可以找到代码优先EF方法培训计划here的链接。这是付费课程。
我的方法包括尝试不同的模型,以便了解EF Design Surface的工作原理。因此,我开始更喜欢DataBase第一种建模方法,与您一样。只需挂在那里,不断敲打工具,尝试不同的东西。
我或许可以在有限的基础上为您提供帮助。我无法告诉你为什么EF创造了它所做的模型,因为我不知道你做了什么来实现这一目标,现在可以。如果你需要一点指导,请随时通过StackOverflow与我联系。
祝你好运!