2008-10-27 2 views
5

제목으로. 나는 어떤 방법으로도 Google을 통해 하나를 찾지 못했습니다.누구든지 LINQ-to-Memcached 공급자에서 일하는 사람을 알고 있습니까?

업데이트 : 두 답변의 링크에 감사드립니다. 이것은 매우 유용하다. 그러나 내가했던 것만은 아니다. RDBMS를 기반으로하는 memcached (또는 다른 분산 캐시)가 지원하는 IRepository를 쿼리 할 수 ​​있는지 궁금하다. 실용 상 그것이 실제로 어떻게 작동할지 모르겠습니다. 분산 캐시 나 LINQ 제공자의 내부에 대해서는 잘 모릅니다.

캐시 LINQ 공급자가 쿼리를 기반으로 캐시 키를 자동으로 생성하는 것과 같은 기능을 기대할 수 있습니다 (쿼리가 Expression> 또는 일종의 Specification 패턴 구현 일 수 있음). 기본적으로 내 앱과 내 DB. 그게 쓸모있어?

+0

+1 질문. 이것은 잘 가치있는 프로젝트처럼 들립니다. –

답변

1

NHibernate을 던지기를 꺼려한다면 LINQ to NHibernate을 사용하여 can be set의 캐시 엔티티를 쿼리 할 수 ​​있습니다.

+0

아야! 그것은 괴롭습니다 –

+0

그것은 당신이 NHibernate를 이미 사용하고 싶은지 여부에 달려 있습니다.) – wprl

+0

나는 그것을 원하지만 비극적으로 Linq2Sql의 단점이 "실제 생활에서"경험되기 전까지는 현재 선택 사항이 아닙니다. –

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에서 memcached에 대한 문제가 발생했습니다. 하지만 당신은 linq DBML의 직렬화가 단방향인지 여부를 확인해야합니다.

이 솔루션을 사용해 볼만한 가치가 있습니다. 나를 위해, 내가 sitall linq 문제가 있지만 [Serilizable] 특성을 가진 다른 개체를 잘 작동합니다.

관련 문제