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

如何在EntityFramework5代码中首先创建一个带有两个外键的主键?Share

时间:2023-04-10 11:30:51 C#

如何在EntityFramework5代码中首先创建带有两个外键的主键?我有一个实体,其中主键包含两个其他表的两个外键。我使用以下配置,但该表是使用两个FK引用生成的。表格:domain.Entity1MorePK(PK,FK,int,notnull)Entity2_Id(PK,FK,int,notnull)Entity3_Id(PK,FK,int,notnull)OtherData(varchar,null)Entity2_Id1(FK,int,null)Entity3_Id1(FK,int,null)由以下内容生成:publicEntity1{publicintMorePK{get;放;}publicintEntity2_Id{得到;放;}publicintEntity3_Id{得到;放;}公共字符串OtherData{得到;放;}publicvirtualEntity2Entity2{get;放;}publicvirtualEntity3Entity3{get;放;}}publicEntity2{publicintId{get;放;}publicvirtualListEntity1s{get;放;}}publicEntity3{publicintId{get;放;}publicvirtualListEntity1s{get;放;}}publicclassEntity1Config:EntityTypeConfiguration{HasKey(k=>new{k.MorePK,k.Entity2_Id,k.Entity3_Id});HasRequired(p=>p.Entity2).WithMany().HasForeignKey(p=>p.Entity2_Id);HasRequired(p=>p.Entity3).WithMany().HasForeignKey(p=>p.Entity3_Id);属性(x=>x.Entity2_Id).HasDabaseGeneratedOption(DatabaseGeneratedOption.None);属性(x=>x.Entity3_Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);如果我注释掉这一行publicvirtualListEntity1s{get;放;在Entity2和Entity3然后它生成正确的数据库,但我认为EF需要导航属性?获得正确数据库模式的正确方法是什么?我想到了!将这个HasMany添加到外部实体配置中:以上是C#学习教程:HowtofirstcreateaprimarykeywithtwoforeignkeysinEntityFramework5code?如果分享的内容对你有用,需要进一步了解C#学习教程,希望你多多关注——publicEntity2Config:EntityTypeConfiguration{HasMany(x=>x.Entity1s).WithRequired(x=>x.Entity2).HasForeignKey(x=>x.Entity2_Id);}publicEntity3Config:EntityTypeConfiguration{HasMany(x=>x.Entity1s).WithRequired(x=>x.Entity3).HasForeignKey(x=>x.Entity3_Id);}网络收藏不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: