【发布时间】:2021-07-28 15:21:21
【问题描述】:
我似乎找不到使用过滤器对数据库进行排序的解决方案。当我返回提交时,它会在过滤掉之前返回数据库。因此,与过滤数据库的 var submits = Biz.Data.AllItems.LoadNotDeleted() 行不同,返回提交只返回整个结果。我尝试了不同版本的 return submits = submits.(something) 来过滤列表,但我没有得到任何可用的选项。
public IQueryable<Biz.Data.AllItems> items_GetData()
{
var submissions = Biz.Data.AllItems.LoadNotDeleted().Where(x =>
x.itemOne != null &&
x.itemTwo != null &&
x.itemThree != null));
var filter = new Biz.Data.AllItemsFilter();
var fileType = ddlFileType.SelectedValue;
var session = ddlSession.SelectedValue;
filter.IsDeleted = false;
filter.IsCancelled = false;
filter.IsAbstractSubmission = true;
switch (fileType)
{
case "Abstract":
filter.FilterExpression = x => x.AbstractUserUploadId.HasValue;
break;
case "Poster":
filter.FilterExpression = x => x.PosterUserUploadId.HasValue;
break;
case "Audio":
filter.FilterExpression = x => x.AudioUserUploadId.HasValue;
break;
case "Transcript":
filter.FilterExpression = x => x.TranscriptUserUploadId.HasValue;
break;
default:
break;
}
if (session != "All")
{
filter.AbstractTopic.MatchType = Dms.Framework.EntityFramework.Match.Exact;
filter.AbstractTopic.Value = session;
}
return submissions = Biz.Data.AllItems.Load(filter).OrderBy(x => x.LastName).ThenBy(x => x.FirstName);
}
LoadNotDeleted =
public static DbQuery<Registration> LoadNotDeleted()
{
var filter = new RegistrationFilter();
filter.IsDeleted = false;
return Load(filter, Int32.MaxValue, 0, ConferenceEventsEntities.Current);
}
加载 =
public static DbQuery<Registration> Load(RegistrationFilter filter)
{
return Load(filter, Int32.MaxValue, 0, ConferenceEventsEntities.Current);
}
【问题讨论】:
-
是的,措辞不好,不是数据库表的列表
-
我已经添加了
-
解释为什么你得到错误的提交:
string GetFoo(){ string foo = "foo"; return foo = "bah"; }结果将是“bah”,因为你将它分配给变量,所以第一个分配不会在任何地方使用。