【发布时间】:2013-08-01 04:33:20
【问题描述】:
我正在尝试在我的 VS2010 项目中使用 Entity Framework 4.0。我一直在我的项目中使用 Linq to SQL 并取得了巨大的成功,并想尝试使用 EF4 进行更改。不幸的是,当我完成将 EF4 模型添加到我的项目的步骤时,没有创建任何关联。
这是我的步骤:
- 在VS2010解决方案资源管理器中右键我的项目
- 点击添加 => 新建项目...
- 选择“ADO.NET 实体数据模型”
- 选择“从数据库生成”
- 连接到我的 SQL 2008 Express R2 数据库
- 检查“表”项
- 已检查生成的对象名称的复数或单数化
- 在模型中包含外键列已选中
- 点击完成!
我看到了我的所有表格,但它们之间没有任何关联。当使用“Linq to SQL Classes”项时,我的所有关联都会按我的预期生成。即使我在 EF4 设置过程中将其简化为仅包含两个(关联)表,关联仍然不显示。
我尝试通过 EF 数据模型设计器手动添加关联,但在调试项目时会产生其他错误。这些错误表明我的命名数据库关联未在数据库中正确配置。
更新:我认为这是 EF4 的错误,但似乎我在约束/关联中遗漏了一些东西。我将从头开始重建我的一些表,看看是否有帮助。我的数据库是从 SQL CE 3.5 转换而来的,所以我可能在此过程中遗漏了一些东西。
谢谢
【问题讨论】:
-
这不是 EF4 的错误。在过去的 2 个月中,我可能已经这样做了 50 次,并且效果很好。问题是您的数据库(很可能)。您能否显示 2 个具有关联的表的数据库架构/创建表脚本?
-
您确定您的数据库设置了 FK 约束吗?尝试在 SQL Management Studio 图表中添加一些表,看看它是否能够识别它们。
-
没错。创建两个新表,都带有 PK,一个带有 FK。将这些添加到 EDMX,关联应该在那里。
-
好的,这有帮助。谢谢,我将使用 SQL 2008 Management Studio 浏览我的每个数据库表 (~20),看看发生了什么。这是一个旧的 SQL CE 3.5 数据库,我将其转换为 SQL Express 2008 R2。在此过程中,我做了很多尝试/错误的事情,并担心我可能会在此过程中搞砸了我的一些限制。感谢您的提示。
标签: sql-server-2008 entity-framework-4 associations sql-server-express