如何使用表设置模型没有任何主键列

时间:2017-08-22 09:10:22

标签: c# entity-framework asp.net-core .net-standard entity-framework-core

在设置SELECT id, userID from table where id!= 1111 and created_at >='2017-08-10' group by userID ORDER BY RAND() LIMIT 1; 时,我们有

DbContext

EFCore抛出异常:

  

实体类型“Person”需要定义主键

但是我们的modelBuilder.Entity<Person>(app => { app.ToTable("Person"); }); 表没有任何主键列。

如何避免这种情况?

1 个答案:

答案 0 :(得分:4)

EF Core不支持没有主键(又名堆)的表。原因很简单:它需要能够操作单个记录,这是在没有主键的情况下无法安全实现的。 作为解决方案,您可以添加int / identity或guid / uniqueidentifier类型的虚拟列/主键,只需忽略它。