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也行,就当曲线救国吧

posted on 2019-03-29 15:06  DevilX5  阅读(1029)  评论(0编辑  收藏  举报

导航