在实体框架中映射多对一关系6流畅的api
本文关键字:api 关系 多对一 实体 框架 映射 | 更新日期: 2023-09-27 18:16:13
我在这里有一个分层设置的问题,我不能得到我的头如何正确配置实体框架fluentapi,或者如果它甚至是可能的。
我有我的自引用表,其中我有我的实体和对父项的引用:
MyEntity(Id, Name, ParentId)
我得到了我可以遍历的树,这很好。我创建了一个视图,其中每个MyEntityId都是根实体的MyEntityId。
MyView (EntityId EntityRootId)
我在MyEntity中创建了一个虚拟属性,可以直接遍历到视图上的根元素。它工作,只要我有一个步骤之间,我给视图自己的实体(MyEntityRoot)。
MyEntity> MyEntityRoot>MyEntity
现在我想去掉这个间接,直接从MyEntity> MyEntity
基本上它的工作方式就像两个一对一的关系,但我希望它表现为一个多对一的关系,中间有一个映射表。映射表是只读的,只是为了方便导航。
这可能吗?还是说,即使我不想让它出现在中间,我也要把它固定在中间?
会是什么样子?我试过类似的方法,但是行不通。
modelBuilder
.Entity<MyEntity>()
.HasRequired(e => e.Root)
.WithMany()
.Map(m =>
m.ToTable("MyView");
m.MapKey("EntityRootId")
)
嗯,我想这是不可能的。
我通过将其作为多对多关系处理来解决它。视图作为关联表。
剩下的唯一问题是我必须像MyEntity. roots . first()代替MyEntity。