EF6使用换行符查询字符串

时间:2017-06-08 08:49:33

标签: c# entity-framework linq entity-framework-6

如何查询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来完成。

1 个答案:

答案 0 :(得分:1)

在linq调用之前构造字符串:

string workDescription = $"Hello {Environment.Newline} World";
GetEntities<TimeEntry>().FirstOrDefault(t => t.WorkDescription == workDescription);