ef core针对没有主键的表的查询

同事搞了一个存储过程,并且设置了定时计划,将存储过程的表定时插入某个表(A表)中,但是在使用EF Core的反向工程(Scaffold-DbContext)的时候,由于这个表没有主键,所以一直无法建立对应的实体类,我的解决方案如下:

首先获取脚本的create语句,然后加一句 id int primary key,直接创建表(B表),然后反向生成B表的实体类,删除id列,修改DbContext中B表的fluent api,在modelBuilder.Entity<B>下面添加一句entity.HasKey(c => c.实际上的主键).HasName("PrimaryKey_xxx");就好了

但是这样做只能在已知A表中存在唯一值的列的情况下,如果表中不存在唯一列,就没办法了.当然,也可以在创建A表的时候就设置好PK,这样也能成功反序列化,或者加入rowid到A表中,默认rowid为PK也行,就当曲线救国吧

原文地址:https://www.cnblogs.com/DevilX5/p/10621360.html