2009-09-23 16 views
2

我有一個像我們有時在網站上看到的搜索機制的問題。我有一個很大的名單,人。過濾「#,A,B,C,D,E,[...]」列表的方法。LINQ和EF與字符串.StartWith(字符c)

問題我有它,當我用EF執行DE查詢時,彈出一個錯誤。這是我的代碼。

代碼:

var query = from p in m_context.Persons 
      where char.IsDigit(p.Name, 0) 
      select a; 

錯誤說,這是不可能將其轉換爲對數據庫的有效表達。那麼,有沒有這樣做?

謝謝你。

UPDATE =======================

這是我的錯誤。

LINQ to Entities不識別方法'Boolean Contains [Char](System.Collections.Generic.IEnumerable`1 [System.Char],Char)'方法,並且此方法不能轉換爲存儲表達式。

回答

3

我想我找到了解決辦法:

var query = m_context.Persons.Where("substring(it.Name, 1, 1) in MULTISET('0','1','2','3','4','5','6','7','8','9')"); 

引用:

Entity SQL Quick Reference

+0

它的工作!非常感謝! – 2009-09-24 16:33:46