C
C.
Hi,
I require two datacontexts to manage users, one to manage details, and
the other for authentication. I am attempting to build a list of User
business objects, but I keep getting the "The query contains
references to items defined on a different data context" exception.
I have fiddled with GetUserDetails() to return IQueryable or
IEnumerable, but neither solution works. Anyone know how I can get the
following to work?
public static List<BO.User> GetUsers(this Table<User> source, int
groupID)
{
ACEDataContext dc = (ACEDataContext)source.Context;
var UserDetails = GetUserDetails();
var users = (from user in dc.Users
where user.GroupId == groupID
join details in UserDetails on user.username
equals details.username
select new BO.User
{
ID = user.id,
Username = user.username,
AdminID = user.groupId,
AccessLevel = user.accessLevel,
EmailAddress = details.emailAddress,
FirstName = details.firstName,
LastName = details.lastName,
}).ToList();
return users;
}
/// <summary>
/// A private method that lets us build our AdminGroupUser
object
/// over DataContext boundaries
/// </summary>
/// <returns></returns>
private static IEnumerable<UserDetail> GetUserDetails()
{
using (UserDetailsDataContext userDC = new
UserDetailsDataContext())
{
var details = from userDetail in userDC.UserDetails
select userDetail;
return details.AsQueryable();
}
}
I require two datacontexts to manage users, one to manage details, and
the other for authentication. I am attempting to build a list of User
business objects, but I keep getting the "The query contains
references to items defined on a different data context" exception.
I have fiddled with GetUserDetails() to return IQueryable or
IEnumerable, but neither solution works. Anyone know how I can get the
following to work?
public static List<BO.User> GetUsers(this Table<User> source, int
groupID)
{
ACEDataContext dc = (ACEDataContext)source.Context;
var UserDetails = GetUserDetails();
var users = (from user in dc.Users
where user.GroupId == groupID
join details in UserDetails on user.username
equals details.username
select new BO.User
{
ID = user.id,
Username = user.username,
AdminID = user.groupId,
AccessLevel = user.accessLevel,
EmailAddress = details.emailAddress,
FirstName = details.firstName,
LastName = details.lastName,
}).ToList();
return users;
}
/// <summary>
/// A private method that lets us build our AdminGroupUser
object
/// over DataContext boundaries
/// </summary>
/// <returns></returns>
private static IEnumerable<UserDetail> GetUserDetails()
{
using (UserDetailsDataContext userDC = new
UserDetailsDataContext())
{
var details = from userDetail in userDC.UserDetails
select userDetail;
return details.AsQueryable();
}
}