首页 > 解决方案 > 为什么我不能将 DataAnnotations KeyAttribute 用于复合键?

问题描述

EntityFramework Core 限制使用 KeyAttribute 来定义复合键。但是这种限制的原因是什么?我找到了一个不使用 Fluent api 的解决方案。

标签: c#entity-framework-core

解决方案


根据这个GitHub 问题,它将在即将发布的 EF Core 版本中实施。从这个GitHub 问题,这里是您正在寻找的解释:

原因是它使用了 Key 和 Column 的组合进行排序,但列排序与键排序不同,因此这在 EF6 中引起了混乱和问题。由于与 .NET Core 和 .NET Framework 的关系,更改现有数据注释的成本也很高。

但是,我们看到了能够使用属性进行此配置和其他常见配置的价值,因为跳转到 fluent API 可能是一个很大的问题。因此,我们将研究创建一个新的库/包,其中包含可与数据注释一起使用的其他新 EF 配置属性。这将是在那里实施的事情之一。

但是,根据此公告,从ASP.NET Core 3.0开始,您可以将 EF 6.x 的所有功能与 ASP.NET Core 一起使用,因为 .NET Core >= 3.0 上将有EF 6.3


推荐阅读