如何查询EF6中有换行符(\ n)的字符串?例如,我有一个字符串$"Hello {Environment.Newline} World"
。
现在我必须使用Linq找到它,所以我试图通过以下查询找到它:(我想使用与特殊字符完全相同的字符串找到它)
GetEntities<TimeEntry>().FirstOrDefault(t => t.WorkDescription == $"Hello \r\n World")
上面的代码抛出异常:
System.Data.Entity.Core.EntityCommandExecutionException:'错误 执行命令定义时发生。看到内心 细节例外。' 内部异常:SqlException:数据类型为nvarchar和text 在等于运算符中不兼容。
那我们应该如何解决呢?有没有可能避免特殊字符?
PS。使用ToList()方法有一个很大的限制,我们希望尽可能地避免它,理想情况下,所有内容都应该使用IQueryable来完成。
答案 0 :(得分:1)
在linq调用之前构造字符串:
string workDescription = $"Hello {Environment.Newline} World";
GetEntities<TimeEntry>().FirstOrDefault(t => t.WorkDescription == workDescription);