2012-03-22 175 views
1

我有這個簡單的查詢:LINQ查詢,其中包含

SELECT  xObjectID, xObjectName 
FROM   dbo.xObject 
where CONTAINS(xObjectRef, '1838 AND 238671') 

而我試圖轉換爲LINQ,但我不能讓它工作, 而且它的駕駛我逼瘋了。

謝謝!

+2

請出示你已經嘗試 – 2012-03-22 12:44:53

回答

1

全文搜索與linq to sql不兼容。你將不得不調用一個存儲過程。

編輯:

還是要LINQ查詢將返回相同的結果集的SQL?

+0

我剛剛纔得知這確實是一個全文檢索查詢。 是否有可能在linq中獲得相同的結果(大致相同的性能?) – user940602 2012-03-22 12:50:42

+0

真的取決於。 dbo.xObject表中有多少行?如果沒有那麼多,那麼使用linq(它會生成一個sql'LIKE'命令)應該沒問題。 – Umair 2012-03-22 13:08:42

+0

不是有成千上萬。我已更改爲存儲過程。 現在研究如何將結果導入另一個數據類。 我曾經有選擇新的FlValue()但是,這似乎不適用於存儲過程。 – user940602 2012-03-22 13:09:58

0
var a = xObject.where(n=>n.Contains("1838") && n.Contains("238671"))). 
        Select(s=>new {xObjectID=s.xObjectID , xObjectName=s.xObjectName}); 
1

這是否適合您?這確實需要xObjectRefxObject的財產。

from obj in dbo.xObject 
where obj.xObjectRef.Contains("1838") && obj.xObjectRef.Contains("238671") 
select new { xObjectId = obj.xObjectId, xObjectName = obj.xObjectName} 
+1

恕我直言,它應該是和 – 2012-03-22 12:47:04

+0

Ofcourse你是對的。在我的腦海裏溝通不暢......;) – Ropstah 2012-03-22 12:49:03

1
var query = from c in context.xObject 
      where c.xObjectRef.Contains("1838") && c.xObjectRef.Contains("238671") 
      select new { ObjectID = c.xObjectID, ObjectName = c.xObjectName };