如何在 Entity Framework 4.1 的 Code-First Fluent API 中以编程方式定义关系
我正在玩新的 EF4.1 unicorn love。
我试图理解使用代码优先来以编程方式定义几个简单 POCO 之间的关系的不同方式。
我如何定义以下 =>
- 1 个
团队
拥有 0 个用户
。 (并且User
位于 1Team
中) - 1
User
有 0 或 1 个Foo
(但是Foo
没有返回到User
的属性) - 1
User
有 1UserStuff
I'm playing around with the new EF4.1 unicorn love.
I'm trying to understand the different ways I can use code-first to programatically define my relationships between a few simple POCO's.
How can I define the following =>
- 1
Team
has 0-manyUser
s. (and aUser
is in 1Team
) - 1
User
has 0-or-1Foo
's (but aFoo
has no property going back to aUser
) - 1
User
has 1UserStuff
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这里有您正在寻找的示例:
Here you have examples you are looking for:
让我们介绍一些特定的类来说明解决方案:
我正在使用一个辅助类来使映射类变得不那么冗长:
现在介绍映射。我们先进行“1:1”映射。在我的示例中,用户和帐户是 1:1 相关的,并且共享相同的主键(其中只有一个是身份列,在本例中是 Account.ID)。
在以下映射中,我们指定一个团队有 (0..n) 个用户,而单个用户恰好位于一个团队中(必需)。我们还指定一个团队可以拥有一个公司,但公司不公开团队列表。
希望这有帮助!
Lets introduce a few specific classes to illustrate the solutions:
I'm using a helper class to make the mapping classes a bit less verbose:
Now for the mappings. Lets do the "1:1" mapping first. In my example user and account are 1:1 related and share the same primary key (only one of them will be an identity column, which in this case is the Account.ID).
In the following mappings we specify that a team has (0..n) users, while a single user is in exactly one team (required). We also specify that a team can have a company, but company does not expose a list of teams.
Hope this helps!