回车或新线与linq

时间:2013-03-22 21:32:33

标签: linq entity-framework

所以我有回车的问题我有一个有文本区域的网页和报告我需要计算在这个文本区域中有多少人写的保存在sql表中调用sell和column note

所以我用linq做了

var count_notes = Vmsb.Sell.Where(v => !(v.Note == null || v.Note.Trim() == string.Empty)).Count();

Vmsb是我的dbcontext

问题是,当我的笔记只有回车或“\ r \ n”时,它会计算它,这不是我想要的

生成的sql就是这样的

SELECT count(note) FROM [dbo].sell AS v WHERE (( NOT (v.[nota] IS NULL OR N'' = (LTRIM(RTRIM(v.[nota])))))

那我怎么办才能不计算“\ r \ n”

1 个答案:

答案 0 :(得分:1)

我从未意识到SQL中的L/RTRIM不会删除换行符。我能想到的唯一方法是

v.Note.Trim().Replace("\r", "").Replace("\n", "")

(抱歉Brice,写这篇文章时没看到你的评论)

当然,防止像这些“空”字符串这样的输入进入数据库要容易得多。我会考虑清理操作并在应用程序中添加一个网守。