5

題して。とにかく、Google経由で見つけられませんでした。

更新: 2 つの回答からのリンクに感謝します。これは非常に便利ですが、私が求めていたものではありません。RDBMS に支えられた memcached (またはその他の分散キャッシュ) に支えられた IRepository を照会できるかどうかを知りたいと思っています。それが実際にどのように機能するのか、私にはまったくわかりません。分散キャッシュまたは LINQ プロバイダーの内部についてはよくわかりません。

クエリに基づいてキャッシュキーを自動的に生成するキャッシュ LINQ プロバイダーのようなものを想定している可能性があります (ここで、クエリは Expression> または何らかの仕様パターンの実装である可能性があります)。それは役に立ちますか?

4

4 に答える 4

1

私はmemcachedが何であるかを知らなかったので、グーグルで検索してこのリンクを見つけました:

http://latebound.blogspot.com/2008/10/using-memcached-from-c.html

memcached での LINQ クエリの使用に関するセクションが一番下にあります。

于 2008-12-09T08:11:01.977 に答える
1

それらの間にNHibernateを投げても構わない場合は、 LINQ to NHibernateを使用して、 memcachedをキャッシュとして使用するように設定できるエンティティをクエリできます。

于 2008-10-27T21:53:12.373 に答える
1

これがあなたが望むものであるかどうかはわかりません。このウェブサイトで確認できます。そこでは、Memcached をクエリしたり、linq をオブジェクトにクエリしたりできます。

   public static IEnumerable<User> GetAllUsers()  
   {  
       // Retrieve from cache if it exists, otherwise run the query  
       return (from u in ctx.Users select u).CachedQuery("allusers");  
   }  

これは、あなたの望むことですか ?

ここにソースコードがあります

public static IEnumerable<T> CachedQuery<T>
        (this IQueryable<T> query, string key) where T : class
{
    if (cache.KeyExists(key))
    {
        return (IEnumerable<T>)cache.Get(key);
    }
    else
    {
        IEnumerable<T> items = query.ToList();
        cache.Set(key, items);
        return items;
    }
}
于 2008-12-09T08:00:59.407 に答える
0

memcached の linq でも問題が発生します。ただし、単方向であるかどうかに関係なく、linq DBML のシリアル化を確認する必要があります。

このソリューションは運がいいかもしれません。試してみる価値があります。私にとっては、linq に問題がありますが、[Serilizable] 属性を持つ他のオブジェクトは正常に動作します。

于 2010-01-23T03:49:33.200 に答える