2008-10-27 10 views
5

Jako tytuł. Nie znalazłem go za pomocą google, w każdym razie.Czy ktoś wie o każdym, kto pracuje nad dostawcą LINQ-do-Memcached?

Aktualizacja: dzięki za linki z dwóch odpowiedzi; jest to bardzo przydatne, ale nie to, czego szukałem - jestem ciekawy, czy możliwe jest zapytanie do IRepository wspieranej przez memcached (lub inną rozproszoną pamięć podręczną), wspieraną przez RDBMS. Naprawdę nie mam pojęcia, jak to może działać w praktyce; Nie wiem zbyt wiele na temat wewnętrznych rozproszonych pamięci podręcznych lub dostawców LINQ.

Możliwe, że przewiduję coś takiego, jak dostawca LINQ z pamięci podręcznej generujący automatycznie klucze pamięci podręcznej na podstawie zapytania (gdzie zapytanie może być wyrażeniem> lub jakaś implementacja wzorca specyfikacji), i zasadniczo może być umieszczany pomiędzy moją aplikacją a aplikacją. mój DB. Czy to brzmi przydatny?

+0

+1 na pytanie. to brzmi jak projekt warty uwagi. –

Odpowiedz

1

Jeśli nie przeszkadza rzucanie NHibernate między nimi, można użyć LINQ to NHibernate kwerendy podmioty, które can be set wykorzystania memcached jako pamięci podręcznej.

+0

Ouch! To jest paskudne. –

+0

To zależy od tego, czy chcesz już używać NHibernate, czy nie;) – wprl

+0

Chciałbym, ale tragicznie nie jest to obecnie możliwe, dopóki niedociągnięcia Linq2Sql nie zostaną zauważone "w prawdziwym życiu". –

1

Nie, jeśli to jest to, czego chcesz, możesz sprawdzić w tym website. Tam możesz zapytać Memcached oraz zapytanie linq do obiektu.

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

Czy tego chcesz?

Oto kod źródłowy

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

Występuje pewien problem z linq dla memcached również. Ale powinieneś sprawdzić serializację twojego DBML linqa, czy jest on jednokierunkowy czy nie.

możesz mieć szczęście do tego rozwiązania, warto wypróbować. Dla mnie, mam problem z linq, ale inny obiekt, który ma atrybut [Serilizable] działa dobrze.

Powiązane problemy