gpt4 book ai didi

c# - 提高 DAL 性能

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

我目前填充业务对象的方式是使用类似于下面代码片段的方式。

using (SqlConnection conn = new SqlConnection(Properties.Settings.Default.CDRDatabase))
{
using (SqlCommand comm = new SqlCommand(SELECT, conn))
{
conn.Open();

using (SqlDataReader r = comm.ExecuteReader(CommandBehavior.CloseConnection))
{
while (r.Read())
{
Ailias ailias = PopulateFromReader(r);
tmpList.Add(ailias);
}
}
}
}

private static Ailias PopulateFromReader(IDataReader reader)
{
Ailias ailias = new Ailias();

if (!reader.IsDBNull(reader.GetOrdinal("AiliasId")))
{
ailias.AiliasId = reader.GetInt32(reader.GetOrdinal("AiliasId"));
}

if (!reader.IsDBNull(reader.GetOrdinal("TenantId")))
{
ailias.TenantId = reader.GetInt32(reader.GetOrdinal("TenantId"));
}

if (!reader.IsDBNull(reader.GetOrdinal("Name")))
{
ailias.Name = reader.GetString(reader.GetOrdinal("Name"));
}

if (!reader.IsDBNull(reader.GetOrdinal("Extention")))
{
ailias.Extention = reader.GetString(reader.GetOrdinal("Extention"));
}

return ailias;
}

有没有人对如何提高此类性能有任何建议?请记住,对于某些类型,PopulateFromReader 包含更多的数据库查找,以便完全填充对象。

最佳答案

一个明显的变化是替换这种声明: ailias.AiliasId = reader.GetInt32(reader.GetOrdinal("AiliasId"));

ailias.AiliasId = reader.GetInt32(constAiliasId);

其中 constAiliasId 是一个常量,包含字段 AiliasId 的序号。

这避免了循环的每次迭代中的顺序查找。

关于c# - 提高 DAL 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1187571/

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