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]
根据 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]