CORE EF The expected type was 'System.String' but the actual value was of type 'System.Guid'.

【小提示】使用.NET Core EF 开发时,当你的数据库实体中添加了“Id”的字段时,会默认做为主键。

在设置数据库字段类型时如果设置了varchar或者char字段的长度为36时(36是微软GUID的长度),并且数据存储的数据正好是Guid字符串时,在使用EF查询数据库时EF会自动把数据类型转为Guid类型,如果你的数据库实体类中对应的字段正好是string类型时会抛出以下异常:

An exception occurred while reading a database value for property 'XXX.Id'. The expected type was 'System.String' but the actual value was of type 'System.Guid'.

 

1、修改字段类型为Guid

2、修改数据库字段长度

以上两个方法都可以解决该异常

posted @ 2019-01-15 18:05  张明日  阅读(711)  评论(0)    收藏  举报