当前位置: 首页 > 编程语言 > C#

LINQtoEntities中的临时表分享

时间:2023-04-10 22:04:47 C#

LINQtoEntities中的临时表我有一个巨大的用户ID表。我有一组我想要的用户ID。我有两个带有外部用户ID键的表。获得此信息性能的最佳方式是什么?理想情况下,在SQL中,最终结果应该是这样的(如果一个表中没有userid而另一个表中没有,则为空值):useridtable1valuetable2value1null125123null我去年遇到了同样的问题,然后在性能方面,然后没有采用临时表来保存记录(应用程序端或服务端)O移动到LINQtoSQL并创建一个存储过程并通过LINQ调用它,例如实体到存储过程=)。我的存储过程执行所有操作并仅返回我想要的那些记录,并且我在存储过程的末尾进行分页,以便一次获得有限的数据而不是应用程序中的所有数据。如果您需要任何帮助,请告诉我。我也会给出一个代码片段。据我所知,LINQtoEntities没有办法动态创建临时表......我认为最接近的是使用LINQtoObjectswithclass或生成匿名类型。或者,在存储过程中执行此操作,并将proc导入对象上下文,然后让您的代码调用proc。proc可以创建一个临时表,或者任何它想要的东西。HTH。好吧,LINQ允许您像SQL一样连接集合(实体),因此您可以创建一些外部连接来获取数据,并且在给定实体框架时应该转换为相对高效的SQL语句。这是一个小例子:varresults=fromuinUserDataSourcejoint1inTable1DataSourceonu.UserId=t1.UserIdintogjfromjt1ingj.DefaultIfEmpty()selectnew{u.UserId,Table1Data=jt1==null?字符串.Empty:jt1.Data};如果表真的很大,或者需要进行额外的处理才能得到结果,我会考虑在服务器上创建一个视图,并在代码中将其映射到实体中。那么它就变成了一个非常简单的选择;您只需将查看结果过滤为您想要查看的用户ID。以上就是C#学习教程:LINQtoEntities中的临时表的全部内容。侵权请点击右侧联系管理员删除。如需转载请注明出处: