c# - 为什么我不能将 DataAnnotations KeyAttribute 用于复合键?
问题描述
EntityFramework Core 限制使用 KeyAttribute 来定义复合键。但是这种限制的原因是什么?我找到了一个不使用 Fluent api 的解决方案。
解决方案
根据这个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
推荐阅读
- c++ - 减法倒计时到零游戏模式与C++中的递归
- r - 通过 R 中的嵌套函数传递默认参数
- c - C - 有效日期证书测试中的 Seg 错误
- c# - BLE 服务 UUID--System.FormatException:'Guid 应包含 32 位数字和 4 个破折号(xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)。
- javascript - 尝试通过 AJAX 验证 Laravel 表单时出现错误 422
- c# - c# 程序集没有在 Visual Studio 中引用相同的代码?
- angular - 在 gulp 任务中运行时,ng serve 挂起 69%
- java - Web 应用程序转换为 Maven 构建问题
- r - 用 sf 在 R 中绘制点和多面体对象
- vuejs2 - 如果内容是视频,Vue 真棒 swiper 播放视频