Ich werde versuchen, meinen Code besser und ich nicht zu machen wissen, wie IQueryable zur nächsten FunktionWie bekomme ich IQueryable als Parameter in der nächsten Methode?
Fehler zu erhalten:
An exception of type 'System.InvalidOperationException' occurred in EntityFramework.dll but was not handled in user code
Additional information: The operation cannot be completed because the DbContext has been disposed.
Das ist Problem:
public List<GitUser> FavoritesUsersListFromHistory(IQueryable users)
{
List<GitUser> favoritesList = new List<GitUser>();
using (var db = new GitContext())
{
foreach (CookiesHistory result in users) <-- users make this error
{
var user = (from u in db.GitUsers
where u.Id == result.GitUserId
select new { u }).First();
favoritesList.Add(user.u);
}
}
return favoritesList;
Dieser Code ist vor Änderung:
List<GitUser> favoritesList = new List<GitUser>();
using (var db = new GitContext())
{
var results = (from ch in db.CookiesHistory
where ch.GitUserId != null
where ch.MyCookieId == cookieId
group ch by new { ch.GitUserId, ch.MyCookieId, ch.SearchGitUser } into g
orderby g.Count() descending
select new { GitUserId = g.Key.GitUserId, MyCookieId = g.Key.MyCookieId, SearchGitUser = g.Key.SearchGitUser, Count = g.Count() }).Take(count);
foreach (var result in results)
{
var user = (from u in db.GitUsers
where u.Id == result.GitUserId
select new { u }).First();
favoritesList.Add(user.u);
}
return favoritesList;
Dies ist Code nach Änderung:
können Sie nicht bekommen 'IQueryable' von einer Verwendung! –