【发布时间】:2019-11-13 18:53:46
【问题描述】:
我是这个 EF 的新手,我正在尝试从 Sql Db 表中获取数据,它给了我类似 invalid classNameId error. 的错误
public class ClassName
{
[Key]
[Display(Name = "Id:")]
public int Id { get; set; }
[Display(Name = "Created By:")]
[Required(ErrorMessage = "Please enter created by.")]
[StringLength(5, MinimumLength = 2)]
public string CreatedBy { get; set; }
public List<OtherClass> OtherClassList{ get; set; }
}
public class OtherClass
{
[Column("Control")]
[Display(Name = "Control:")]
public String Control { get; set; }
[ForeignKey("PID")]
[Column("PID")]
[Display(Name = "PID:")]
public int PID{ get; set; }
}
数据库上下文:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<ClassName>()
.HasKey(p => p.Id);
modelBuilder.Entity<OtherClass>()
.HasKey(p=> new { p.Control, p.PID});
}
我使用 Fluent API 从 MSSql 获取数据。
【问题讨论】:
-
EF Core或EF 6.x? -
EF Core @AliBahrami
-
有一个原因
classNameId存在于您的数据表中,但数据模型类中缺少该字段,因此请先验证它。 -
不,数据表中没有任何列以及名为 ClassNameId 的数据模型。它只是数据模型和数据表中的 ID @KalpeshBoghara
-
所以请分享完整的错误信息。可能是你错过了什么,
标签: c# sql entity-framework entity-framework-core ef-fluent-api