[编程笔记] EF实体字段映射重复引发的异常

    起因是获取最新代码后,登录接口报程序异常,调试了一下代码,提示xxx字段不唯一,报错的代码行如下:

repository.Database.SqlQuery<T>("SQL...")

    执行查询的SQL里,并不涉及xxx字段,但是却报错了,挺奇怪的一个问题。后面找同事一起看的时候,知道原因了,框架用的EF,在维护实体时,如果有实体的字段重复了,就会在首次使用EF的地方报错!

    所以尽管这里的查询和xxx字段无关,但是只要是当前项目的实体里,有映射问题,都会在第一次使用EF连接的地方抛出异常。

    最后我们找到了出错的代码:

this.Property(entity => entity.xxxId).HasColumnName("xxxxId").IsRequired();
this.Property(entity => entity.xxxName).HasColumnName("xxxxId").IsRequired();

    上面映射的时候把两个字段都映射到同一个字段了,所以报错。

 

    记一下的原因在于,其他ORM框架貌似没有这个问题,EF是个不错的ORM,但是维护起来太麻烦了,相比在Entity里指定是否可空、长度等属性,我更喜欢SQLSugar这种松校验的方式。

    吐槽归吐槽,该用还得用~~

posted @ 2025-03-14 16:53  顾星河  阅读(23)  评论(0)    收藏  举报