0
我正在尝试将sql查询转换为正常工作的linq语句,不幸的是,它不如预期那么容易。加入不同 - 将SQL转换为Linq查询
原来的SQL查询如下所示:
SELECT DISTINCT tt1.ArtikelId
FROM
(
SELECT ArtikelId FROM [dbo].[ArtSearchEinfachView]
WHERE Feld = 'Listungsstatus' AND Wert = '0'
) tt1
INNER JOIN
(
SELECT ArtikelId FROM [dbo].[ArtSearchEinfachView]
WHERE Feld = 'AktiverAktikel' AND Wert = '1'
) tt2
ON tt1.ArtikelId = tt2.ArtikelId
INNER JOIN
(
SELECT ArtikelId FROM [dbo].[ArtSearchEinfachView]
WHERE Feld = 'Artikelbezeichnung' AND Wert like '%berentzen%'
) tt3
ON tt1.ArtikelId = tt3.ArtikelId
将会有更多的联接以后,将建立一个谓词建设者以后,但在本页面我只包括2
我试图将其转换。我正在使用devforce实体管理器,但不幸的是它不工作:
public async Task<int> LadeArtikelCountEinfachNew(string sucheingabe)
{
var query = _artikelContainer.ArtSearchEinfach.Where(p => p.Feld == "Listungsart" && p.Wert == "0");
query = query.Join(_artikelContainer.ArtSearchEinfach.Where(x => x.Feld == "AktiverAktikel" &&
x.Wert == "1"),
x => x.ArtikelId,
y => y.ArtikelId,
(x,y) => y).Distinct();
query = query.Join(_artikelContainer.ArtSearchEinfach.Where(p => p.Feld == "Artikelbezeichnung" &&
p.Wert.Contains(sucheingabe)),
x => x.ArtikelId,
y => y.ArtikelId,
(x, y) => y).Distinct();
return await query.AsScalarAsync().Count();
}
有人可以请帮助我吗?
为什么我使用它是因为它的产品索引,表原因。一个产品有100个包含数据的表格,我们将我们搜索页面所需的所有数据(索引所有数据)放到一个表格中,所以我们的项目只需要使用这个表格来搜索特定的产品。这使得我们的产品搜索比加入所有表格等要快得多。谢谢,这是一个罚款。 :) – Jannik 2014-10-20 11:57:32