表单查询时用查重的发方法查询数据。
在之前因为不懂得表单数据的方法,可谓是跑了不少弯路,不仅代码打的非常多而且效果也不怎么滴,页面卡顿,加载得很慢,就比如下面用for循环来的对表单数据进行查询和查重的方法来查询数据:
for循环来的对表单数据:
var User = (from tbCommonUser in myModels.S_CommonUser
join tbUser in myModels.S_User on tbCommonUser.UserID equals tbUser.UserID
select new
{
CommonUserID = tbCommonUser.CommonUserID,
UserName = tbUser.UserName
}).ToList();
for (int i = 0; i < User.Count; i++)
{
tggl shuj = new tggl();
shuj.TuozZongs = 0;
var CommonUserID = User[i].CommonUserID;
var UserName = User[i].UserName;
//获取到关联用户
var GeneralizeRelevance = (from tbGeneralizeRelevance in myModels.S_GeneralizeRelevance
where tbGeneralizeRelevance.GeneralizeR == UserName && tbGeneralizeRelevance.RelevanceTime != null
select tbGeneralizeRelevance).ToList();
if (GeneralizeRelevance.Count() > 0)
我们要对一表单的用户名进行查询:for循环查询获取到不重复的一条用户名和但是那个表有多条重复名称的多条数据,无奈之下,安我的想法首先查询出含有用户名的用户表所有数据再用查询出用户名对着对应的表进行fro循环一个一个的查询,直到找到含有相同数据的就返回对应用户表的用户名。这样一来不仅代码执行得多而且还很慢,如果用户表有很多很多数据那就相当于陷入了死循环了。
用查重的方法来查询数据就不会出现这种情况了,不仅代码少,执行时间比上面的少很多而且能得到同样的数据结果:
var GeneralizeRelevance = (from tbGeneralizeRelevance in myModels.S_GeneralizeRelevance
where tbGeneralizeRelevance.RelevanceTime != null
select tbGeneralizeRelevance. GeneralizeR) Distinct().ToList();
Distinct():返回序列中非重复的元素。
这样一来页面页面加载数据回填也比for循环查重快多了