C# Linq还是多个数据库调用?
我使用C#/Asp.Net/Entity Framework来检索我的数据,当与linq结合使用时,即使是像我这样的新手也可以非常轻松地检索数据 我有一个特别的场景,我正在寻找建议 我有一个相对较小的数据表(200个产品),但是作为EF,同时检索到其他表 我连续10次使用此表中的数据,如下所示:C# Linq还是多个数据库调用?,c#,sql-server,entity-framework,linq,C#,Sql Server,Entity Framework,Linq,我使用C#/Asp.Net/Entity Framework来检索我的数据,当与linq结合使用时,即使是像我这样的新手也可以非常轻松地检索数据 我有一个特别的场景,我正在寻找建议 我有一个相对较小的数据表(200个产品),但是作为EF,同时检索到其他表 我连续10次使用此表中的数据,如下所示: type = 1; subtype = 1; // do something with this type = 1; subtype = 2; // then do something with th
type = 1;
subtype = 1; // do something with this
type = 1;
subtype = 2; // then do something with this
您可以看到图片-它总是相同的类型,但我根据子类型做其他事情-我当前使用linq提取这些子类型-因此我对类型进行1db调用,然后使用linq处理其余的子类型
问题是,每次使用type和subtype对db进行10次调用是否更好?它当然会使代码更整洁,但我猜它的性能可能会更低。您对“更好”的定义是什么?为什么不选择所有产品记录并将它们与
类型和子类型连接起来(包括)(我想这是相同的类型-表,不是吗?)。然后在一个查询中就有了所需的所有信息。显示您的查询。老实说,只要您的数据量不是很大就可以了,当数据量变得很大而sql server无法处理时,您应该感到担心。阅读有关存储过程以及如何使用实体框架创建它们的内容,以及@TimSchmelter说您也应该挖掘的内容(假设您还没有这样做?!这很奇怪)更好地涵盖所有的事情-我认为自己没有足够的经验来了解所有的利弊,但我可以作出明智的决定,如果有争论的任何一个。你有一个工作解决方案,有足够的性能=不打破=不修复它。考虑到条目的数量,两种可能性应同等有效。如果条目更多,您可能会利用DBMS的索引。这可能比全部获取和通过linq过滤要好。但我说的可能是数百万条。