2008-10-27 37 views
5

作爲標題。無論如何,我沒有通過谷歌找到一個。有誰知道任何人在LINQ-to-Memcached提供者上工作?

更新:感謝來自兩個答案的鏈接;這是非常有用的,但不是我所追求的 - 我很好奇查看是否可以查詢由RDBMS支持的memcached(或其他分佈式緩存)支持的IRepository。我真的不知道這在實踐中可能如何工作。我不太瞭解分佈式緩存或LINQ提供者的內部。我可能會想像一下,像LINQ提供程序自動生成基於查詢的緩存鍵(其中查詢可能是Expression>或某種規範模式實現),並且基本上可以在我的應用程序和我的數據庫。這聽起來有用嗎?

+0

+1。這聽起來像一個非常值得的項目。 – 2008-10-29 08:32:34

回答

1

我不這樣做,如果這是你想要的,你可以檢查這個website。在那裏你可以查詢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; 
    } 
} 
0

我遇到了linq for memcached的一些問題。但是你應該檢查你的linq DBML的序列化,不管它是否是單向的。

您可能對此解決方案有好運,值得嘗試。對我來說,我有問題與linq,但其他對象具有[Serilizable]屬性工作正常。

相關問題