表A与表B是多对多的关系
在表A上添加映射:
this.HasMany(t => t.Bs)
.WithMany(t => t.As)
.Map(t =>
{
t.ToTable("AtoB");
t.MapLeftKey("AID");
t.MapRightKey("BID");
});
生成表AtoB
如何为AtoB添加字段,用于查询时区别数据。
1.如果你用ef的导航属性查询.那你就没法用中间的其它字段.
2.你加了字段之后中间表就必须出现在上下文里.
3.都在上下文中了.你怎么弄都是可以的.建个实体都行.
那我要怎么做?新增个ATOB的实体,然后将多对多的关系改成两个一对多的关系吗
这个问题搞的我崩溃了好几天了。。。。
@酱油荷: 是的.你说的是对.话说我最喜欢用的网名就是 酱油君
@吴瑞祥:两个一对多是这样么
@酱油荷: 嗯。查询就自己写表连接了
@吴瑞祥: 我这样写的结果是获得user信息时,user里的userrole有一条数据,但是userrole里的role为null了
@酱油荷: 用户干嘛不直接用identity的。。废这劲干嘛。
添加的时候要自己去添加关系表数据。
@吴瑞祥: 说是为了方便权限人员管理。。。
@酱油荷: identity更方便.你去推荐一下吧.让他们去了解下identity.他们能想出来的.identity全支持.他们想不出来的.identity早就做好了.
这是?codefirst么?
嗯 ef 的codefirst
@酱油荷: codefirst,不是直接建实体?
@顾晓北: 现在有user和role两个实体,多对多的关系,userrole是映射出的表,现在要在userrole里新增字段
你说的“用于查询时区别数据”? 要如何理解?
要给自动生成的userrolde 添加字段是不可能的,你可以换个方式,中间表自己定义,然后user和role 跟中间表建立关系
你加了字段之后中间表就必须出现在上下文里.
1楼说的很对