Hi guys,
I encountered a problem using the Where filter on a table, with an Enum:
HasMany(x => x.AuthorAttributes)
.Where(t => t.Type == MetaDataType.Person)
I took a look at the code you're using, and I've got a simple fix that
appears to work - but to be honest, I'm not that familiar with the
expression tree that LINQ creates. In your ExpressionToSql.cs file in
Utils, I just made the following change:
private static string Convert<T>(Expression<Func<T, object>> expression,
UnaryExpression body)
{
var constant = body.Operand as ConstantExpression;
if (constant != null)
return Convert(constant);
var member = body.Operand as MemberExpression;
if (member != null)
return Convert(expression, member);
// Begin changes
// added processing of unary expression
// just simple handling (basically ignoring any Convert nodes that
// seem to appear in the tree)
var unaryExpression = body.Operand as UnaryExpression;
if (unaryExpression != null && unaryExpression.NodeType ==
ExpressionType.Convert)
return Convert(expression, unaryExpression);
// End changes
throw new NotImplementedException();
}
Honestly, I don't know the further implications of this, but it seems to
work fine for Enums anyway!
James
--
James Crowley
Managing Director
Developer Fusion - Connecting developers worldwide
Developer Fusion Ltd | 58 Sandringham Close | Enfield, EN1 3JH
mob: 07986 624128 web: http://www.developerfusion.com/
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Fluent NHibernate" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/fluent-nhibernate?hl=en
-~----------~----~----~----~------~----~------~--~---