[编程笔记] 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这种松校验的方式。
吐槽归吐槽,该用还得用~~
PS:转载请注明来源 https://www.cnblogs.com/sunshine-wy,疑问和勘误可在下方留言。