I'm using the latest version of NHibernate (3.3.1.4000) from NuGet in .Net 4 targeted project in Visual Web Developer 2010 Express.
When I attempt to follow examples I've seen for defining aliases, I get an exception when setting them up using lambdas (see screenshot).
As you can see I'm getting the error Cannot convert lambda expression to type 'string' because it is not a delegate type
.
I have references to the LINQ namespaces in the top of my code:
using System.Linq;
using System.Linq.Expressions;
Any thoughts on what might be causing the problem?
In order to use a variable like
role
in an expression, you have to define it first, like so...ISession.QueryOver<T>(...)
has four overloads:.QueryOver<T>()
.QueryOver<T>(Expression<Func<T>> alias)
.QueryOver<T>(string entityName)
.QueryOver<T>(string entityName, Expression<Func<T>> alias)
Apparently because it can't figure out what
role
is, it's assuming you're trying to use the.QueryOver<T>(string entityName)
overload, hence the "Cannot convert ... to type 'string'" error message.