Как сравнить List <String>с таблицей БД с помощью LINQ - PullRequest
1 голос
/ 13 октября 2010

У меня есть список <> телефонных номеров, и я пытаюсь соединить его с соответствующими записями в таблице базы данных и получить номер заказа и идентификатор клиента.Кроме того, в списке есть целое число в виде одной строки, а в БД оно разбито на код зоны, префикс, номер, каждое в виде отдельных полей.

Я довольно новичок в LINQ, так что это больше, чем я знаю,Любые предложения приветствуются.

var tnbrs = new List<string>();

попробовал:

    var tntable = tnbrs.Cast<DataSet>();  

    var tntable = tnbrs.AsQueryble();<code>

    var custdata = from c in db.CUSTs  
               join t in tntable on c.NPA + c.NXX + c.LINE_NBR equals t.???  
               select new { c.PON, c.PartnerID };

1 Ответ

1 голос
/ 13 октября 2010

Вам не нужно приводить tnbrs к набору данных. попробуйте это вместо

var custdata = from c in db.CUSTs  
               where tnbrs.Contains(c.NPA + c.NXX + c.LINE_NBR)
               select new { c.PON, c.PartnerID };

Он генерирует sql-запрос примерно так

SELECT [t0].[PON], [t0].[PartnerID]
FROM [dbo].[CUSTs  ] AS [t0]
WHERE [t0].[NPA]) + [t0].[Nxx] + [t0].[LINE_NBR] IN (@p0, @p1)
...