多对多、poco、ef4
我有 3 个实体:
Goods [GID(PK), GoodName]
Persons [PID(PK), PersonName]
Roles [RID(PK), RoleName]
但现在我需要将这些对象相互关联。 换句话说,每个商品可以有许多人担任许多角色。 我在数据库中有一个包含 3 个字段(GID、PID、RID)的表,
例如:
Book (GID#1), can have 3 associated persons:
1. Jack (PID#1) in role Author (RID#1)
2. Jack (PID#1) in role Editor (RID#2)
3. Bill (PID#2) in role Painter (RID#3)
如何在实体框架 4 中以 POCO 格式映射它?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我相信您必须创建另一个 PersonRoles 标头,在其中存储 Person-Role 关系,然后通过以下标头访问 person+role:
PersonRoles [PRID(PK), PersonName, RoleName]
(注意:您也可以使用实体键(仅关系)来执行此操作,EF 将消除该实体并提供直接的 Person.Roles 实体,您可以通过 Book.Persons.Select((p) p.Roles) 访问它代码>)。注意:我的主要语言是 VB.NET,所以我对上面的伪代码表示歉意,但我希望你能明白。
更新
它应该是这样的:(
来自 ADO.NET VB POCO 实体生成器)
我刚刚复制了“良好”ID 和导航。财产不过应该是他们三个人的。
I believe you have to create another PersonRoles header where you store the Person-Role relation, then you access the person+role via this one:
PersonRoles [PRID(PK), PersonName, RoleName]
(note: you could also do this withnow entitykey, just relationships, EF will eliminate this entity and give a direct Person.Roles entity, which you can do access it viaBook.Persons.Select((p) p.Roles)
).Note: my main lang is VB.NET so I apologize for the pseudu code above, but I hope you get the idea.
Update
It should be like:
(part from the generated entity by ADO.NET VB POCO Entity Generator)
I just copied the 'Good' Id and nav. property but it should be the three of them.