我感到迷失了方向,为什么会产生InvalidCastException
?
using (var dbContext = CreateDbContext())
{
result = dbContext
.Users
.Where(m => m.UserId.Equals(userId)).SingleOrDefault();
}
在这种情况下,“ UserId”是SQL Server中的uniqueidentifier
。 userId
是System.Guid
。
DbSet
中C#上的 UserId也是System.Guid
。
它从哪里得到SqlString
?
System.InvalidCastException:'无法转换类型的对象 键入'System.Data.SqlTypes.SqlString' “ System.Data.SqlTypes.SqlGuid”。
答案 0 :(得分:0)
请注意,您的实体类与数据库定义完全匹配。
对于我来说,列是按顺序匹配的,而SQL表中的某些列未在C#实体类中定义。
答案 1 :(得分:-2)
我遇到了同样的问题。问题将是与数据库表字段和模型属性不匹配。 在具有field1作为varchar但在模型中作为guid的DB中。检查所有数据库字段是否完全匹配。希望这会有所帮助。