I have a table of user accounts in the admin panel, and this table stores data from different db tables (tables in the SQL database). And the user account table should support paging and sorting. When I try to sort the data with "FirstName" retrieved from the account db table, .net throws an exception because there is no "FirstName" column in the Location db table. My method is similar:
Account acc = null;
AccountLogin accl = null;
Program prog = null;
Location school = null;
Location town = null;
Location city = null;
var query = Session.QueryOver<Account>(() => acc)
.Left.JoinQueryOver<AccountLogin>(x => x.Logins, () => accl)
.Left.JoinQueryOver(x => acc.AtentedToProgram, () => prog)
.Left.JoinQueryOver(x => acc.LiveIn, () => school)
.Left.JoinQueryOver(x => school.Parent, () => town)
.Left.JoinQueryOver(x => town.Parent, () => city)
.Where(x => acc.CreateDate.IsBetween(DateTime.Now.AddMonths(-12)).And(DateTime.Now)
);
if (program_id != 0)
query.And(x => prog.program_id == program_id);
search = search??"";
string[] searchedTags = search.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
if (searchedTags != null && searchedTags.Count() > 0)
{
Disjunction dis = new Disjunction();
for (int i = 0; i < searchedTags.Count(); i++)
{
dis.Add(Expression.Like(Projections.Property(() => accl.UserName), searchedTags[i], MatchMode.Anywhere));
dis.Add(Expression.Like(Projections.Property(() => acc.FirstName), searchedTags[i], MatchMode.Anywhere));
dis.Add(Expression.Like(Projections.Property(() => acc.LastName), searchedTags[i], MatchMode.Anywhere));
dis.Add(Expression.Like(Projections.Property(() => acc.Email), searchedTags[i], MatchMode.Anywhere));
}
query.And(dis);
}
if (city_id != 0)
query.And(x => city.LocationId == city_id);
if (town_id != 0)
query.And(x => town.LocationId == town_id);
if (school_id != 0)
query.And(x => school.LocationId == school_id);
var countquery = query.Clone().ToRowCountQuery().FutureValue<int>();
pager.TotalPageNumber = countquery.Value;
var orderred = query.OrderBy(Projections.Property(pager.SortColumn));
return ordered.Skip(pager.Skip).Take(pager.Take).List();
var orderred = query.OrderBy (Projections.Property (pager.SortColumn)); the line has a problem.
, pager.SortColumn OrderBy, , , "" db, db-. ?