我有一个实体,其中主键由其他两个表的两个外键组成。我使用以下配置,但该表是使用两个FK引用生成的。
表:
domain.Entity1
MorePK (PK, FK, int, not null)
Entity2_Id (PK, FK, int, not null)
Entity3_Id (PK, FK, int, not null)
OtherData (varchar, null)
Entity2_Id1 (FK, int, null)
Entity3_Id1 (FK, int, null)
生成于:
public Entity1
{
public int MorePK { get; set; }
public int Entity2_Id { get; set; }
public int Entity3_Id { get; set; }
public string OtherData { get; set; }
public virtual Entity2 Entity2 { get; set; }
public virtual Entity3 Entity3 { get; set; }
}
public Entity2
{
public int Id { get; set; }
public virtual List<Entity1> Entity1s { get; set; }
}
public Entity3
{
public int Id { get; set; }
public virtual List<Entity1> Entity1s { get; set; }
}
public class Entity1Config : EntityTypeConfiguration<Entity1>
{
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);
Property(x => x.Entity2_Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
Property(x => x.Entity3_Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
}
如果我把台词注释掉
public virtual List<Entity1> Entity1s { get; set; }
在Entity2和Entity3上,它会正确地生成DB,但我认为EF需要导航属性,对吗?获取正确数据库架构的正确方法是什么?
我想通了!将这个Has很多添加到外部实体配置中:
public Entity2Config : EntityTypeConfiguration<Entity2>
{
HasMany(x => x.Entity1s)
.WithRequired(x => x.Entity2)
.HasForeignKey(x => x.Entity2_Id);
}
public Entity3Config : EntityTypeConfiguration<Entity3>
{
HasMany(x => x.Entity1s)
.WithRequired(x => x.Entity3)
.HasForeignKey(x => x.Entity3_Id);
}
我的MVC应用程序中有两个实体,我使用实体框架6代码优先的方法填充数据库。学生实体中有两个城市id;其中一个代表出生城市,另一个代表工作城市。当我如上所述定义外键时,将在迁移后在学生表中创建一个名为City\u ID的额外列。是否存在错误或如何定义这些FK?提前谢谢。 学生: 城市:
问题内容: 我有一个2D整数数组。我希望将它们放入HashMap中。但是我想从基于数组索引的HashMap访问元素。就像是: 对于A [2] [5],它返回与该键关联的值。但是,如何使用一对密钥创建一个hashMap?或者通常是多个键:以一种我可以使用get(key1,key2,… keyN)来访问元素的方式。 编辑:发布问题3年后,我想再添加一点 我遇到了另一种方法。 数组索引,和可被表示为一个
如何使用hibernate注释实现下表? 当前代码为:(为简洁起见,已删除) 使用者 社交网络 SocialProfile公司 显然我的代码现在不能正常工作。有人能解释一下吗?
我们系统的所有用户都来自一个主“用户”类。同样,我们希望以相同的方式构造数据库,拥有一个主“用户”表,该表与特定用户类型的必要表连接,以提供额外的用户信息。 以这三个基本表格为例: 表用户 user_id|user_email|user_firstname|user_lastname|... 表雇员 user_id|employee_staff_number|... 表管理 user_id|adm
我试图在laravel中创建一个主键-外键关系,但我一直遇到这个错误 我似乎找不到哪里出错了,因为我在查看了SO上的其他答案后,对模式进行了更改。 当我运行时,上面的错误会弹出,这是一个部分迁移。 任何指向这将是真棒,因为我已经寻找了一段时间的解决方案! 谢谢 员工表 部门表 工资表 新增:DB播种机。 根据评论更改了DB种子程序
我有两个表,在我的Spring代码中是学生和课程。我想创建一个关系表,“获取课程”。我只有学生ID和课程ID。我可以在我的java代码中创建一个具有两个主键的表,但我不能将它们声明为外键。 我尝试了这个解决方案,将两个外键作为主键,但没有成功,我认为其中缺少了一些部分。因此,我尝试了基于此解决方案的方法: (学生实体有id, name, surname)(课程实体有id, Coursename)