C# 您可以在无键实体上添加[Key]吗?

C# 您可以在无键实体上添加[Key]吗?,c#,entity-framework-core,C#,Entity Framework Core,我正在尝试实体框架核心,所以我偶然发现了一个无键表,我正在尝试创建一个CRUD操作,因为它是无键的,创建、更新和删除是不可能的。所以我想,如果我指定一个键(有一个唯一的列可以是主键),这将修复EFCore中的无键问题。我的问题是,这可能吗?如果可能,我将如何做到 希望你们能帮助我 PS不允许更改表,因此我需要此解决方法…您是否尝试将[Key]或fluent代码添加到唯一列以查看其是否有效?您不需要运行任何迁移来测试这一点。无键和键是互斥的。但是,是的,如果您将某个唯一的必填列标记为PK,EF C

我正在尝试实体框架核心,所以我偶然发现了一个无键表,我正在尝试创建一个CRUD操作,因为它是无键的,创建、更新和删除是不可能的。所以我想,如果我指定一个键(有一个唯一的列可以是主键),这将修复EFCore中的无键问题。我的问题是,这可能吗?如果可能,我将如何做到

希望你们能帮助我


PS不允许更改表,因此我需要此解决方法…

您是否尝试将[Key]或fluent代码添加到唯一列以查看其是否有效?您不需要运行任何迁移来测试这一点。无键和键是互斥的。但是,是的,如果您将某个唯一的必填列标记为PK,EF Core将使用它,就像它是一个真正的PK一样。如果这是问题的话,它不需要是数据库表中的真正PK。是的,我尝试添加它,但在更新时,它仍然会给我“无法跟踪类型的实例”错误。请确保删除了
HasNoKey()
fluent调用,因为它优先于
[Key]
属性。或者用HasKey(x=>x.YourUniqueColumn)替换它@IvanStoev和Neil谢谢大家!我觉得自己太傻了,只在模型中添加了[Key],而没有在dbcontext中更改任何内容。因此,我所做的是将dbcontext中的hasnokey()更改为haskey(e=>‘惟一列’),它就成功了。再次感谢!!