CreateCriteria
метод требует, чтобы вы использовали ссылочные типы - добавьте ограничение на ваш метод DAL:
public IList<Entity> GetAll<Entity>()
where Entity : class
{
return _session.CreateCriteria<Entity>().List<Entity>();
}
Естественно, это означает, что любой тип Entity
, передаваемый этому методу, должен быть ссылочным типом.
Я также предлагаю присвоить имя вашему параметру универсального типа TEntity
- Entity
- это немного сбивает с толку (так как это совершенно подходящее название, скажем, базового класса сущности).