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