gpt4 book ai didi

c# - 存储过程上的企业库缓存参数?

转载 作者:行者123 更新时间:2023-11-30 15:12:46 25 4
gpt4 key购买 nike

我正在尝试与我的同事一起标准化一些数据访问代码。前面提到的一位同事断言 EntLib 数据访问 block 试图缓存存储过程调用的参数。

我查看了反射器,有一些证据表明它可能正在缓存它们。但我认为在以下情况下不会。

    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

最佳答案

它确实曾经使用过,我把代码撕掉并扔进了我的库。

它使用 sp_help 并解析输出以确定数据类型。

这些天,我把代码撕掉了,.Net 在添加参数方面要好得多。

cmd.Parameters.AddWithValue("@name",somevalue)

在你的例子中,你一直在反射……你会发现它是沿着这条路径 GetStoredProcCommand() 完成的

你会得到一个 Command 对象,已经填充了参数

ent lib代码是受版权保护的,但是代码和这个几乎一模一样

http://code.google.com/p/dbdotnet/source/browse/trunk/ParameterCache.cs

关于c# - 存储过程上的企业库缓存参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/704794/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com