C#学习教程:EntityFrameworkCodeFirst–一对多共享连接/链接表在之间使用链接/连接表?公共类Foo{publicintFooId{get;放;}//...公共整数?BarId{得到;放;}publicvirtualBarBar{get;放;}}publicclassBar{publicintBarId{get;放;}//...公共虚拟ICollectionFoos{get;放;我想这样映射:TABLEFooFooIdINTPRIMARYKEY...TABLEBarBarIdINTPRIMARYKEYTABLEFooBarFooIdINTPRIMARYKEY/FOREIGNKEYBarIdINTFOREIGNKEY有了这个,我有能力确保Foo只有一个Bar,但该Bar可以被许多不同的Foos重复使用。实体框架能实现吗?我宁愿不必将密钥放在Foo本身中,因为我不想要可为空的外键。如果可能,请提供使用FluentAPI而不是数据注释的示例。你可以使用实体拆分来实现这个publicclassFoo{publicintFooId{get;放;}公共字符串名称{得到;放;}publicintBarId{得到;放;}publicvirtualBarBar{get;放;然后在您的自定义DbContext类中保护覆盖voidOnModelCreating(DbModelBuildermodelBuilder){modelBuilder.Entity().HasKey(f=>f.FooId);modelBuilder.Entity().Map(m=>{m.Properties(b=>new{b.Name});m.ToTable("Foo");}).Map(m=>{m.Properties(b=>new{b.BarId});m.ToTable("FooBar");});modelBuilder.Entity().HasRequired(f=>f.Bar).WithMany(b=>b.Foos).HasForeignKey(f=>f.BarId);模型构建器.Entity()。HasKey(b=>b.BarId);modelBuilder.Entity().ToTable("Bar");BarId列将被创建为FooBar表中的非空列。您可以查看ADO.NETEntityFramework4.1中的CodeFirst以获取更多详细信息以上是C#学习教程:实体框架代码优先-带有连接/链接表的一对多并且我需要了解更多有关C#学习教程,希望大家会多多关注~本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
