Entity Framework - [无键] 数据注释丢失

Entity Framework - [Keyless] Data Annotation Missing

根据 Microsoft 文档 Here,我应该可以访问 [Keyless] 的属性,这样我就可以定义我的模型有 Keyless,这样在我的 DBContext 中我可以有类似的东西:

public DbSet<MyKeylessClass> KeylessModel { get; set; }

并使用_context.KeylessModel.FromSqlRaw(...),无需为其添加PK。 我有对 System.ComponentModel.DataAnnotations 的引用,除了 Keyless 之外的所有属性都在那里,我在这里缺少什么?

好吧,官方 EF Core 3.0 发布文档并未提及支持该属性,而是针对无键类型,他们指示使用 HasNoKey() 方法:

ModelBuilder.Entity<MyKeylessClass>().HasNoKey()

你可以阅读更多here

您可能错过了链接文档主题

开头的注意的以下部分

The [Keyless] Data Annotation became available in EFCore 5.0.

"became"? "in EFCore 5.0"?拜托,此时没有 EFCore 5.0。

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

如果你有 ef 5.x 它现在就在那里,但它不在常规数据注释命名空间下,试试这个: [Microsoft.EntityFrameworkCore.Keyless]