InvalidCastException:无法将SqlString强制转换为SqlGuid

时间:2019-10-31 21:58:46

标签: c# asp.net-core entity-framework-core

我感到迷失了方向,为什么会产生InvalidCastException

using (var dbContext = CreateDbContext()) 
{
    result = dbContext
            .Users
            .Where(m => m.UserId.Equals(userId)).SingleOrDefault();
}

在这种情况下,“ UserId”是SQL Server中的uniqueidentifieruserIdSystem.Guid

DbSet中C#上的

UserId也是System.Guid

它从哪里得到SqlString

  

System.InvalidCastException:'无法转换类型的对象   键入'System.Data.SqlTypes.SqlString'   “ System.Data.SqlTypes.SqlGuid”。

2 个答案:

答案 0 :(得分:0)

请注意,您的实体类与数据库定义完全匹配。

对于我来说,列是按顺序匹配的,而SQL表中的某些列未在C#实体类中定义。

答案 1 :(得分:-2)

我遇到了同样的问题。问题将是与数据库表字段和模型属性不匹配。 在具有field1作为varchar但在模型中作为guid的DB中。检查所有数据库字段是否完全匹配。希望这会有所帮助。