Composable function parameters do not support Unicode names


Looks like they are getting run through some bad regex. This affects the designer's ability to reverse engineer from databases with non-English TVF parameter strings.

Note to EF Team: This bug is also tracked in an internal bug tracking system. Please be sure to update internal bug #604132 when resolving/closing this issue.
Closed Jun 24, 2013 at 11:15 PM by nathangr


nathangr wrote May 9, 2013 at 11:28 PM

Right now this is happening as part of the Designer's validation ("RuntimeMetadataValidator") which for the beta will still be using the legacy .NET runtime. Post-beta, Pawel has a task to remove this dependency and use the EF6 runtime.

We can fix this bug in the EF6 runtime (we've isolated the problematic regex), but the designer won't see the fixes until post-beta, so we'll need to do a second round of verification once the designer changes are made.

divega wrote May 21, 2013 at 11:55 PM

From Pawel's analysis: This might be because the set of characters allowed in names in the CSDL/SSDL is restricted. I think it is not a regression from VS11 (http://social.msdn.microsoft.com/Forums/en-US/adodotnetentityframework/thread/ca7864ac-fa59-445b-ba31-35f94e186950). Changing this is quite a big feature because it would not only require changing the code we have but also reversioning CSDL/SSDL/MSL artifacts to avoid a situation where EDMX created with EF6 would be rejected by EF5 even though the version of the artifact is/should be supported.

moozzyk wrote May 22, 2013 at 3:27 AM

Rather than relying on the analysis I made straight after I joined the team we need to compare the characters allowed in the schemas and also by the ESQL queries with the regex.

emilcicos wrote Jun 3, 2013 at 5:57 PM

Updated the routine that validates parameter names to use a regular expression that matches Unicode names. (commit 1ca9897be1009f0b06f0673d5354043b3b69e0f8)

nathangr wrote Jun 24, 2013 at 11:15 PM

Verified on latest EFTools nightly build. This also requires the latest EF nightly in order to work at runtime.