gpt4 book ai didi

asp.net-core - 如何拥有与 "Id"不同名称的主键

转载 作者:行者123 更新时间:2023-12-02 03:02:12 24 4
gpt4 key购买 nike

我在使用 Entity Framework Core 1.1 的 ASP.NET Core 应用程序中遇到以下情况

名为“Content”的数据库表

  • Content_ID(int not null,主键)
  • 标题(最大可变字符)
  • 描述(最大可变字符)

模型(“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”。我希望 Entity Framework 生成一个包含列“Column_ID”的查询,并将其映射到我名为“Id”的模型属性。

您是否知道为什么会发生这种情况以及我该如何解决这个问题?

最佳答案

对于需求比较简单的人来说,这就足够了

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<ContentEntry>().Property(c => c.Id).HasColumnName("Content_ID");
}

关于asp.net-core - 如何拥有与 "Id"不同名称的主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45015516/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com