Linq-To-SQL 쿼리에서 대용량 데이터 집합 (IEnumerable
이 [Table]
- 속성 클래스 개체)을 가지고 있으며이 데이터베이스에서 CSV 파일을 생성해야합니다. 데이터 집합을 반복하고 각 항목에 대해 다양한 서식 옵션을 사용하여 항목의 각 속성 값을 문자열로 변환합니다.MemoryCache를 사용하여 다양한 객체를 문자열로 빠르게 변환하는 방법은 무엇입니까?
Type t = typeof(T);
var properties = t.GetProperties();
foreach (var item in list)
{
foreach (var property in properties)
{
// This is made using delegates, but whatever
object value = property.GetValue(item, null);
// convert to string and feed to StringBuilder
}
}
문제는 변환을 실행하면 쿼리를 실행하는 데 더 오래 걸리는 것입니다. 데이터 세트에는 지나치게 비정규 화 된 데이터가 포함되어 있습니다. 많은 항목에는 동일한 값을 갖는 동일한 속성이 있고 다른 값을 갖는 일부 속성 만 있습니다. 각 속성 값은 데이터 집합의 각 항목에 대해 개별적으로 변환됩니다. 그래서 내 코드는 동일한 데이터를 동일한 문자열로 반복해서 변환합니다. 그리고 어떻게 든 SQL 쿼리를 변경하지 않고이 속도를 향상시키고 싶습니다.
MemoryCache
class처럼 보이지만 각각의 개체에 대해 고유 한 키를 만들어야합니다. 나는 그러한 키를 어떻게 안정적이고 효율적으로 만들 수 있는지 알 수 없다.
다른 유형의 객체에 대한 변환 결과를 캐시 할 수 있도록 MemoryCache
을 어떻게 사용합니까?