2

我有以下 SQL,我如何在 LINQ 中实现它,我在我的 MVC 项目中使用实体框架。

  SELECT 
  * FROM Catalog.ServiceItem 
  WHERE SKU NOT IN (SELECT ServiceItemSKU FROM Catalog.TaggedServiceItems)

有任何想法吗 ?

编辑: 答案:

var untaggedItems = from item in serviceItems where !taggedServiceItems.Contains(item.SKU) select item;
4

4 回答 4

8

你可以这样做Contains

var result = from item in ServiceItem
    where !TaggedServiceItems.Contains(item.SKU)
    select item;
于 2012-05-04T14:24:58.177 回答
1

试试这个

var Catalog_ServiceItem = ds.Tables["Catalog.ServiceItem"].AsEnumerable();
var Catalog_TaggedServiceItems = ds.Tables["Catalog.TaggedServiceItems"].AsEnumerable();
var _except = from c in Catalog_ServiceItem 
                   join b in Catalog_TaggedServiceItems 
                     on c.Field<string>("ServiceItemSKU ") equals b.Field<string>("ServiceItemSKU ") into j
                   from x in j.DefaultIfEmpty()
                   where x == null
                   select c;

编辑

你可以这样做

var _except = Catalog_ServiceItem.Except(Catalog_TaggedServiceItems);
于 2012-05-04T14:37:29.850 回答
0

使用拉姆达。

dim query=Catalog.ServiceItem.where(function(q) not q.Contains(q.SKU))
于 2012-05-04T14:38:55.763 回答
-1

试试这个:

var untaggedItems = 
  from i in Catalog.ServiceItem
  let taggedItems = (
    from ti = Catalog.TaggedServiceItems
    select ti.ServiceItemSKU ).Distinct()
  where ! taggedItems.Contains( i.SKU )
  select i;
于 2012-05-04T14:33:47.743 回答