【发布时间】:2017-12-14 09:25:39
【问题描述】:
我在使用 Entity Framework Core 1.1 的 ASP.NET Core 应用程序中遇到以下情况
名为“内容”的数据库表
- Content_ID(int 非空,主键)
- 标题(最大 varchar)
- 说明(最大varchar)
模型(“ContentEntry.cs”):
public class ContentEntry
{
public int Id {get; set;}
public string Title {get; set;}
public string Description {get; set;}
}
配置文件 (ContentEntryConfiguration.cs)
public class ContentEntryConfiguration : IEntityMappingConfiguration<ContentEntry>
{
public void Map(EntityTypeBuilder<ContentEntry> modelBuilder)
{
modelBuilder.HasKey(m => m.Id);
modelBuilder.Property(m => m.Id).HasColumnName("Content_ID");
modelBuilder.Property(m => m.Title ).HasColumnName("Title");
modelBuilder.Property(m => m.Description).HasColumnName("Description");
modelBuilder.ToTable("Content");
}
}
如上所述,我的表的主键名为“Content_ID”。 当我执行 LINQ 查询时,我收到一条错误消息,提示 在数据库中未找到“ID”列。在使用 SQL Profiler 检查生成的查询后,我注意到查询包含“ID”而不是“Content_ID”。 我希望实体框架生成一个包含“Column_ID”列的查询,并将其映射到我的名为“Id”的模型属性。
您知道为什么会发生这种情况以及如何解决此问题吗?
【问题讨论】:
-
@Kris 我更正了;这只是一个打字错误,但不是我的问题的原因。
标签: asp.net-core entity-framework-core