查询字符串字段是否包含实体框架中的数字

时间:2014-05-21 20:12:17

标签: entity-framework

如何在实体框架中查询字符串列包含数字的所有实体?

e.g。

"100 Main Street" // match
"Will advise" // no match

真的不想这样做:

myclass.Property.Contains("0")
|| myclass.Property.Contains("1")
|| myclass.Property.Contains("2")
|| myclass.Property.Contains("3")
|| myclass.Property.Contains("4")
|| myclass.Property.Contains("5")
|| myclass.Property.Contains("6")
|| myclass.Property.Contains("7")
|| myclass.Property.Contains("8")
|| myclass.Property.Contains("9")

2 个答案:

答案 0 :(得分:3)

您可以尝试在数字数组上使用Contains方法:

var digits = Enumerable.Range(0, 10).Select(s=>s.ToString()).ToArray(); 
var result = YOURCONTEXT.YOUR_TABLE
                        .Where(n => digits.Any(d => 
                                      n.YOUR_FIELD.Contains(d)))
                        .ToList();

答案 1 :(得分:2)

您可以使用SqlFunctions.PatIndex检查该列是否包含数字:

where SqlFunctions.PatIndex("%[0-9]%", myClass.Property) != 0