gpt4 book ai didi

c# - Entity Framework 运行存储过程和 native 查询性能注意事项

转载 作者:太空宇宙 更新时间:2023-11-03 11:38:57 24 4
gpt4 key购买 nike

我想知道与使用普通的旧 ado.net DataReader 和 DataTable 相比,在执行以下操作时是否存在性能损失:

using(DBEntities dbEntities = new dbEntities)
{
ObjectResult<tblCustomers> customers =
dbEntities.ExecuteStoreQuery<tblCustomers>("SELECT name,id FROM tblCustomers");
}

我还想使用 dbEntity 运行存储过程。

我提到这个是因为我正在开发一个对性能高度敏感的应用程序,但仍然想使用 Entity Framework 。

此外,任何人都可以向我指出 linq to entities 在 .net 4.0 上编译查询的最新性能测试吗?

编辑
如果我使用 ado.net,我计划将从每一行获得的结果手动插入到 .net 对象中。所以它是 Entity Framework storequery/sproc vs ado.net + 手动创建数据并将数据插入 .net 对象。

最佳答案

是的,当然 - 这是一种比普通 ADO.NET/SQL 更高级的方法。

您发送一个 SQL 查询并返回一个 tblCustomers 对象列表。沿线的某个地方,将发生从数据库的行/列到对象的映射,这确实需要一些时间。

另一方面 - 如果你想自己做同样的事情,你也将不得不付出性能代价 - 或者你只是使用旧式的行/列来完成你的工作(不是 推荐!)。

这是经典的“便利性与性能”权衡 - 哪个对您更重要?能够使用漂亮的 C# 对象及其属性进行编程并作为程序员非常高效 - 或者从数据库中选择几纳秒?这是你的选择....

关于c# - Entity Framework 运行存储过程和 native 查询性能注意事项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5311977/

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