ORM support 2.0.7.1213
SQL DQE 2.0.7.605
sql express db
adapter
I have a string field and I want to compare the first character to a list of values. if i attempt to use a range predicate the strings are attempted to be converted to longs
Left(Myelds.StringField, 1) == new string[] {"A", "B", "C"};
public EntityField2 Left(IEntityField2 field, int numberOfCharacters)
{
return new EntityField2(string.Empty, new DbFunctionCall("left", new object[] { field, numberOfCharacters }));
}
output
where left([MyTable].[StringField], @numberOfCharacters) in (@a, @b, @c)
parameters:
int @numberOfCharacters = 1
long @a = A
long @b = B
long @c = C
however, if I use this predicate instead. it works correctly
Left(Myelds.StringField, 1) == "A" | Left(Myelds.StringField, 1) == "B" | Left(Myelds.StringField, 1) == "C"
any ideas?