Я пытаюсь стандартизировать некоторый код доступа к данным с моими коллегами. Один из вышеупомянутых коллег утверждает, что блок доступа к данным EntLib пытается кэшировать параметры для хранимых вызовов proc.Параметры кэширования корпоративных библиотек в хранимых процедурах?
У меня есть взгляд в отражателе, и есть некоторые доказательства того, что он может их кэшировать. Но я не думаю он делает в следующей ситуации.
public Dictionary<long, string> GetQueue(int maxItems)
{
var sq = new SqlDatabase(_connString.ConnectionString);
var result = new Dictionary<long, string>();
using (var cmd = (SqlCommand)sq.GetStoredProcCommand("dbo.GetQueue"))
{
sq.AddInParameter(cmd, "maxItems", DbType.Int32, maxItems);
var reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
while (reader.Read())
{
long id = reader.GetInt64(reader.GetOrdinal("id"));
string fileName = reader.GetString(reader.GetOrdinal("meta_data_filename"));
result.Add(id, fileName);
}
}
return result;
}
Может кто-нибудь подтвердить или опровергнуть это?
Я использую EntLib 4.1
Кстати, нет необходимости использовать отражатель, чтобы увидеть, EntLib поставляется со всем исходным кодом , Вы можете установить источник и шаг вправо. :) –
Хорошая оценка! Я проверю это. –