使用 nhibernate 作为 ORM
试图获得一个实体
var users = GetUsersData(repository);
return users.Where(f => f.Id == id).FirstOrDefault();//there is an exception
例外:
'System.Linq.EnumerableQuery
1[Entity]' cannot be converted to type 'System.Linq.IQueryable
1[System.Object[]]' 类型的对象。
但是当我这样做时:
var users = GetUsersData(repository);
return users.Where(f => f.Id == id).ToArray().FirstOrDefault();
它运行良好。指点我,怎么了?
在GetUsersData
我做:
private static IQueryable<User> GetUsersData(IUserRepository repository)
{
return repo.GetAll().Select(user => new User
{
Id = user.Id,
Phones = user.Phones.Select(s => new Phone() { Number = s.Number }),
...
}).AsQueryable();