我的nHibernate中有一个现有的模型,我正在大量使用它。最近我引入了一个计算列来帮助一些性能,但是我不想在结果中使用这一列,我只想根据此列查询数据。我尝试过如下所示的内容,但是我的最后一部分“CreateSQLQuery result to NhQueryable”
数据集
|Id |Name |Mobile |CalculatedMobile|
|1 |Tom |0555111222 |+44555111222 |
|2 |Bob |0555222333 |+44555222333 |
代码
public IEnumerable<User> GetUsers(string mobile)
{
var session = Config.SessionFactory.OpenSession()
var Users = session.CreateSQLQuery("SELECT Id, Name, Mobile FROM Users U CalculatedMobile = :mobile")
.AddEntity(typeof(User))
.SetString("mobile", mobile);
var result = Users.List<User>().AsQueryable();
result = _extendedQueryProvider.AddChildEntities(result);
return (result.ToList());
}
public IQueryable<RestaurantEntity> AddChildEntities(IQueryable<RestaurantEntity> users)
{
users = users.FetchMany(x => x.Addresses);
return (users);
}
所以我的代码中的问题是“users.FetchMany”无效。我有例外
There is no method 'FetchMany' on type 'NHibernate.Linq.EagerFetchingExtensionMethods' that matches the specified arguments