.net-core - 实体框架导航属性自定义命名
问题描述
在使用实体框架(代码优先)在两个实体之间建立连接时,我发现很难处理属性的命名。
在下面的代码示例中,它将找不到正确的连接,并会要求一个名为的列,该列airline_iata_airline_code
不存在,因此即使我设置了外键属性(给它相关类的类名)并定义了它也会失败要在其他类中查找的列名。
[ForeignKey("AirlineDto")]
[Column("iata_airline_code")]
public string IataAirlineCode { get; set; }
这不起作用,但如果我将其更改为以下示例,它会找到关系并从数据库中返回正确的数据(而不是名称更改)。
[ForeignKey("AirlineDto")]
[Column("iata_airline_code")]
public string AirlineIataAirlineCode { get; set; }
问题是我不希望它被调用<RelatedClass><PrimaryKey>
。我希望能够定义我自己的名字。如何才能做到这一点?
解决方案
您没有指定是否使用 Code First,但在 DBConext 类上尝试以下操作:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<YourClassName>().Property(x => x.IataAirlineCode).HasColumnName("iata_airline_code");
}
推荐阅读
- python - BeautifulSoup:不要为某些标签插入换行符,例如
- python - 如何过滤多个变量的 API GET 请求?
- r - 如何从R中的矩阵中提取一系列特定值?
- javascript - 从文件夹中随机选择图像并将其显示在 php 表单上,但每次选择都会限制下一次选择的选项
- xml - 查询一个根 Element 下的多个 XML 节点
- notifications - PWA 中的 ServiceWorkerRegistration.showNotification,将应用程序带到前台
- python - 使用 Pandas 绘制箱线图
- ios - ld:找不到 -lCocoaAsyncSocket 的库 - React Native
- kotlin - 如何从一个地方收集流量并从另一个地方取消?
- sql-server - 关键字 'key' pyodbc 错误 42000 附近的语法不正确