2012-03-22 140 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 };