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 に答える