C# 实体框架数据库映射
我正试图将此外键映射到requisions\u sections类,但我遇到了此错误C# 实体框架数据库映射,c#,entity-framework,.net-core,C#,Entity Framework,.net Core,我正试图将此外键映射到requisions\u sections类,但我遇到了此错误实体类型“requisions\u sections”需要定义主键。如果要使用无键实体类型,请在“OnModelCreating”中调用“HasNoKey”。有关无键实体类型的更多信息,请参见 我为此创建了单独的类 在mysql中,JobIDFK和section都应该是主键,我不知道如何在SQL server中实现这一点,而且这是一对多的关系,一个jobID有多个section 感谢您的帮助。此错误是由于模型“请
实体类型“requisions\u sections”需要定义主键。如果要使用无键实体类型,请在“OnModelCreating”中调用“HasNoKey”。有关无键实体类型的更多信息,请参见
我为此创建了单独的类
在mysql中,JobIDFK和section都应该是主键,我不知道如何在SQL server中实现这一点,而且这是一对多的关系,一个jobID有多个section
感谢您的帮助。此错误是由于模型“请购单”部分未定义任何键属性造成的。但是,如果您希望跟踪更改,建议为模型定义键。 如果您的模型不需要任何键,则可以使用[keyless]数据注释或.HasNoKey()方法调用
public class Requisitions
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int JobID { get; set; }
[Required]
public string JobNumber { get; set; }
[Required]
public string Username { get; set; }
[Required]
public string Department { get; set; }
[Required]
public string Details { get; set; }
[Required]
public DateTime DateOfComplaint { get; set; }
[Required]
public string Period { get; set; }
[Required]
public DateTime EndDate { get; set; }
}
public class Requisitions_Sections
{
public Requisitions Requisitions { get; set; }
[ForeignKey("Requisitions")]
public int JobIDFK { get; set; }
[Required]
public string Section { get; set; }
}
下面是使用无键实体类型的一些特征
错误消息非常清楚,您的类
requisions\u部分必须有主键,除非您希望它显式没有主键,在这种情况下,您需要调用modelBuilder.Entity().HasNoKey()
在您的DbContext
的OnModelCreating
方法中,正如@MindSwipe已经提到的,您的请购单部分的主键是什么?接下来,我建议将[ForeignKey(“requisions”)]
更改为[ForeignKey(nameof(requisions))]
似乎您的类与EF核心一对一关系约定不匹配。请看一下@MindSwipe问题edited@DeMaki编辑的问题是,如果我不使用密钥,这是一对多关系
[KeyLess]
public class Requisitions_Sections
{
public Requisitions Requisitions { get; set; }
[ForeignKey("Requisitions")]
public int JobIDFK { get; set; }
[Required]
public string Section { get; set; }
}