2017-08-08 48 views
0

我在ASP.NET MVC中有一個項目。 我需要連接一個數據庫,並從它們中提取所有後綴爲'r'的客戶端。我想:使用具有特定後綴的LINQ(EF)從表中獲取名稱

public class MyDBRepository 
{ 
    public IEnumerable<MyClient> GetNamesBySuffix(char symbol) 
    { 
     List<MyClient> myClients = new List<MyClient>(); 

     using (MyDBEntities m = new MyDBEntities()) 
     { 
      List<Client> Clients = new List<Client>(); 
      Clients = m.Clients.Where(c => c.name[c.name.Length-1] == symbol).ToList(); 
      foreach (Client client in Clients) 
      { 
       MyClient newClient = new MyClient() { Name = client.name }; 
       myClients.Add(newClient); 
      } 
      return myClients; 
     } 
    } 
} 

我越來越System.NotSupportedException,我不能在SQL顯然使用索引(c.name[c.name.Length-1]) .. TY的幫手!

+2

你嘗試過:'m.Clients.Where(C => c.name.EndsWith( 「R」);' –

回答

1

評論這是用來的endsWith基礎上找到的最後一個字符的數據下面的代碼。

public class MyDBRepository 
{ 
    public IEnumerable<MyClient> GetNamesBySuffix(char symbol) 
    { 
    List<MyClient> myClients = new List<MyClient>(); 

    using (MyDBEntities m = new MyDBEntities()) 
    { 
     myClients = m.Clients.Where(c => c.name.Trim().EndsWith(symbol+"")) 
          .Select(c=>new MyClient {name=c.name}) 
          .ToList();   
     return myClients; 
    } 
    } 
} 
+0

泰真正有用的 –

+0

好嗎?!!! ,upvote it。 –

+0

什麼?,我應該做些什麼? –

1

嘗試

Clients = m.Clients.Where(c => c.name.EndsWith(symbol.ToString())).ToList(); 
+1

泰真正有用!!!! –

相關問題