ef中作为关系的中间表,如何再增加到上下文中

thornfield_he 2015-06-26 05:40:59
数据库有表a,b,c。b表作为a表和c表的关系表。在DbContext并未创建b表的dbset,只是通过如下配置实现了a=》c的关系
  modelBuilder.Entity<A>()
.HasMany(t => t.C)
.WithMany()
.Map(m =>
{
m.ToTable("B");
m.MapLeftKey("AId");
m.MapRightKey("CId");
});

有一天突然需要将表b添加到DbContext上下文中,执行迁移命令的时候,报错:
模型生成过程中检测到一个或多个验证错误:

TreeViewModelUnitProcess: Name: 已定义具有架构“dbo”和表“basic_TreeViewModelProcesses”的 EntitySet“TreeViewModelUnitProcess”。每个 EntitySet 所引用的架构和表都必须唯一。
请问这种情况该如何处理?
...全文
237 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
thornfield_he 2015-06-29
  • 打赏
  • 举报
回复
引用 2 楼 winner2050 的回复:
所谓中间表在EF里面是隐形的。 如果你没把握自己定义,那么把map删掉,ef它会自己配置的。
同理删除 OnModelCreating中的map映射后,这样操作系统会删除我的中间表。现在中间表是有数据的,行不通
thornfield_he 2015-06-29
  • 打赏
  • 举报
回复
引用 1 楼 caozhy 的回复:
先解除关系,然后执行迁移,再添加回来
所谓的解除关系是指删除 OnModelCreating中的map映射么?这样操作系统会删除我的中间表。现在中间表是有数据的,行不通
threenewbee 2015-06-27
  • 打赏
  • 举报
回复
先解除关系,然后执行迁移,再添加回来
winner2050 2015-06-27
  • 打赏
  • 举报
回复
所谓中间表在EF里面是隐形的。 如果你没把握自己定义,那么把map删掉,ef它会自己配置的。

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧