LINQ to SQL不支持本地序列。那我怎么做这个查询呢?

时间:2013-11-06 09:21:50

标签: c# .net linq linq-to-sql

这是我的疑问:

var utenti = from User utente in db.User
             join amico in amiciParsed on new { utente.Nome, utente.Cognome } equals new { Nome = amico.first_name, Cognome = amico.last_name }
             select utente;

但我收到了这条消息:

  

本地序列不能用于查询的LINQ to SQL实现   除Contains运算符之外的运算符。

那么我该如何解决这个问题呢?试图存储在变量db.User中,但没有任何变化。

1 个答案:

答案 0 :(得分:1)

这样做:

var utenti = from User utente in db.User.AsEnumerable()
             join amico in amiciParsed on 
                 new { utente.Nome, utente.Cognome } equals 
                 new { Nome = amico.first_name, Cognome = amico.last_name }
             select utente;

但是如果要扩展查询,请小心,例如:

var utenti = from utente in (from User utente in db.User
                             where utente.Name.StartsWith(searchText)
                             select utente).AsEnumerable()
             join amico in amiciParsed on 
                 new { utente.Nome, utente.Cognome } equals 
                 new { Nome = amico.first_name, Cognome = amico.last_name }
             select utente;