2008-10-27 16 views
5

Başlık olarak. Google üzerinden herhangi bir oranda bulamadım.LINQ'tan Memcached sağlayıcısıyla çalışan herkesin haberi var mı?

Güncelleme: İki yanıtın bağlantıları için teşekkürler; Bu çok yararlı, ama sonra ne oldu - Ben bir RDBMS tarafından desteklenen memcached (veya başka bir dağıtılmış önbellek) tarafından desteklenen bir Yetiştirici sorgulamak mümkün olup olmadığını merak ediyorum. Bunun pratikte nasıl çalışabileceğine dair hiçbir fikrim yok; Dağıtılmış önbelleklerin ya da LINQ sağlayıcılarının iç yapısını bilmiyorum.

Önbellek LINQ sağlayıcısı gibi sorguyu otomatik olarak (sorgu ifadesi İfade> veya bir çeşit Spesifikasyon kalıbı uygulaması) temel alarak önbellek anahtarları gibi bir şey tasarlamayı düşünebilirim ve temelde uygulamanızın arasında doldurabilir ve benim DB'm Bu işe yarar mı geliyor? Aralarında NHibernate atma sakıncası yoksa

+0

+ 1 soruya. Bu iyi bir proje gibi geliyor. –

cevap

1

, onların önbelleği olarak memcached kullanmak can be set varlıkları sorgulamak için LINQ to NHibernate kullanabilirsiniz.

+0

Ouch! Bu kötü –

+0

Bu zaten NHibernate kullanmak istiyorsanız ya da değil bağlıdır;) – wprl

+0

Ben _do_ istiyorum, ancak Traqically şu anda Linq2Sql eksiklikleri "gerçek hayatta" yaşanana kadar bir seçenek değil. –

1

bu istediğini ise, bu website kontrol edebilirsiniz yok. Orada Memcached yanı sıra nesne için sorgu linq sorgulayabilirsiniz.

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"); 
    } 

İstediğiniz bu mu? İşte

kaynak kodu

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

Ayrıca memcached için linq ile ilgili bir sorunla karşılaşıyorum. Ancak, tek yönlü olup olmadığını linq DBML serileştirme kontrol etmelisiniz. Bu çözüm için şansınız olabilir, denemeye değer. Benim için linq ile sorun yaşıyorum, ama [Serilizable] özniteliği olan diğer nesneler iyi çalışıyor.

İlgili konular