C# 为什么可以';我不能对复合键使用DataAnnotations KeyAttribute吗?

C# 为什么可以';我不能对复合键使用DataAnnotations KeyAttribute吗?,c#,entity-framework-core,C#,Entity Framework Core,EntityFramework核心限制使用KeyAttribute定义复合键。 但这种限制的原因是什么?我在不使用Fluent api的情况下对此进行了验证。根据这一点,它将在即将发布的EF Core版本中实现。从这一点来看,这就是你想要的解释: 原因是它使用了键和列的组合进行排序,但列排序与键排序不同,因此在EF6中造成了混乱和问题。更改现有数据批注的成本也很高,因为它们与.NET Core和.NET Framework的关系 然而,我们看到了能够使用属性进行此配置和其他常见配置的价值,因为跳

EntityFramework核心限制使用KeyAttribute定义复合键。 但这种限制的原因是什么?我在不使用Fluent api的情况下对此进行了验证。

根据这一点,它将在即将发布的EF Core版本中实现。从这一点来看,这就是你想要的解释:

原因是它使用了键和列的组合进行排序,但列排序与键排序不同,因此在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,顺便说一句,“积压”意味着它已被“跟踪”,但未计划实施,因此可能永远无法解决:)谢谢您的回答。顺便问一下,在EF 6.3和Core 3.0发布之前,对于EF 6.2/Core 2.0的兼容性,您的解决方案可以按原样使用吗?我强烈建议您使用
Fluent API
IEntityTypeConfiguration
类似的:。这将使担忧完全分离。@IvanStoev他们没有解决这一问题,这意味着在遥远的将来实施这一计划的可能性微乎其微:)