Я пытаюсь стандартизировать некоторый код доступа к данным с моими коллегами. Один из вышеупомянутых коллег утверждает, что Блок доступа к данным EntLib пытается кэшировать параметры в хранимых вызовах процедур.
Я посмотрел на рефлектор, и есть некоторые доказательства того, что он может их кешировать. Но я не думаю , что происходит в следующей ситуации.
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