There is a bug with String.Substring generating SUBSTRING instead of SUBSTR, which results in the SQL query failing.
Here's a way to fix this bug. In your database model, add this code right before EntityContainer <Function Name="substr" Aggregate="false" BuiltIn="false" NiladicFunction="false" IsComposable="true" ParameterTypeSemantics="AllowImplicitConversion" Schema="dbo" ReturnType="nvarchar"> <Parameter Name="text" Type="nvarchar" Mode="In" /> <Parameter Name="startPos" Type="int" Mode="In" /> </Function> In your context class (create a partial class next to it), add this code [DbFunction("MyModel.Store", "substr")] public string SubStr(string text, int startPos) { return text.Substring(startPos); } In your code, call Substring in this way context.SubStr(text, startpos) It will now properly map to the SUBSTR function instead of SUBSTRING! It's like mapping a User Defined Function, except that we map to an existing standard function. This should be fixed in the source code. Etienne