实体框架 - [Keyless] 数据注释缺失

Ric*_*ais 4 c# data-annotations entity-framework-core

根据 Microsoft Documentation Here,我应该可以访问 [Keyless] 的属性,以便我可以定义我的模型具有无键,以便在我的 DBContext 中我可以有类似的东西:

public DbSet<MyKeylessClass> KeylessModel { get; set; }
Run Code Online (Sandbox Code Playgroud)

并使用_context.KeylessModel.FromSqlRaw(...),而无需向其添加 PK。我有参考资料,System.ComponentModel.DataAnnotations除了 Keyless 之外的所有属性都在那里,我在这里遗漏了什么?

E-B*_*Bat 5

好吧,官方 EF Core 3.0 发布文档还没有提及支持该属性,而是指示无键类型使用HasNoKey()方法:

ModelBuilder.Entity<MyKeylessClass>().HasNoKey()
Run Code Online (Sandbox Code Playgroud)

你可以在这里阅读更多


Iva*_*oev 2

您可能错过了链接文档主题开头的注释的以下部分

数据[Keyless]注释在 EFCore 5.0 中可用。

“成为”?“在 EFCore 5.0 中”?拜托,现在还没有EFCore 5.0。

不管怎样,看起来他们正在主动记录未来的事情,所以当某些东西丢失或与记录的不同时,请注意这一点。

  • 是的,文档表明有一个稳定的 5.0 版本。到目前为止,只有一个[预览](https://devblogs.microsoft.com/dotnet/announcing-entity-framework-core-5-0-preview-2/)。 (3认同)
  • @格特确实如此。如果您问我,文档会很混乱 - 以前版本的文档丢失了(从而破坏了链接或显示了不同的内容),当前版本的一些内容已经过时丢失,现在引用了未来(未发布)的内容。甚至根页面也已更改,因此现在“Entity Framework”指的是 EF Core,EF6 位于“Previous Versions”下。ETC。 :-( (3认同)
  • 这就是当营销介入时会发生的事情 :) 他们对 EF core 比我更满意。 (2认同)