当前位置: 首页 > 编程语言 > C#

如何在EF中配置一对多关系共享

时间:2023-04-11 01:28:17 C#

在EF中如何配置一对多关系我有以下模型publicclassPageConfig:Base{//PropertiesEtc..publicICollectionScrollerImages{得到;放;我的方法是使用联结表{PageConfigID,ImageID}进行绑定。在我的模型活页夹中,我尝试了以下..modelBuilder.Entity().HasMany(x=>x.ScrollerImages).WithMany().Map(x=>{x.ToTable("junc_PageConfigScrollerImages");x.MapLeftKey("PageConfigID");x.MapRightKey("ImageID");});这会导致图像集合为空。如何将这些图像绑定到PageConfig模型?编辑大多数问题是由于用户错误造成的。这发生在你身上......检查数据库中的键约束是否设置正确。模型上的ICollection需要是虚拟的。如果您要在这两个实体之间创建一对多关系,您的模型将如下所示:publicclassPageConfig{publicintId{get;set;}//navigationpropertypublicICollectionScrollerImages{get;set;}}publicclassImage{publicintId{get;set;}//FKpublicint?PageConfigId{get;set;}//导航属性publicPageConfigPageConfig{get;set;}}FluentApi配置将是:modelBuilder.Entity().HasOptional(i=>i.PageConfig).WithMany(pc=>pc.ScrollerImages).HasForeignKey(i=>i.PageConfigId);如果您的想法是创建单向一对多关系,请删除Image实体FK和导航属性,并以这种方式配置关系:modelBuilder.Entity().HasMany(pc=>pc.ScrollerImages)。WithOptional();有关此类关系的更多信息,请根据http://www.entityframeworktutorial.net/code-first/configure-one-to-many-relationship-in-code-first.aspx查看此链接:“...你可以使用FluentAPI使用Student实体类配置一对多关系,如下所示。”protectedoverridevoidOnModelCreating(DbModelBuildermodelBuilder){//一对多modelBuilder.Entity().HasRequired(s=>s.Standard).WithMany(s=>s.Students).HasForeignKey(s=>s.标准号);}"...makeforeignkeycolumnsnullableusingtheHasOptionalmethodinsteadoftheHasRequiredmethod."所以你必须寻找这样的东西:以上是C#学习教程:如何配置一对一的全部内容EF中的许多关系共享。modelBuilder.Entity().HasOptional(x=>x.PageConfig).WithMany(x=>x.ScrollerImages).HasForeignKey(x=>x.PageConfigId)本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: