【问题标题】:Entity Framework: List of invalid characters in Entity Name实体框架:实体名称中的无效字符列表
【发布时间】:2013-03-27 17:13:38
【问题描述】:

我正在开发一个与 Visual Studio 中的 Edmx 设计器非常相似的设计器。我想添加 Edmx 设计器应用于实体和属性名称的相同验证。有人可以分享什么是验证规则,即允许哪些字符,哪些不允许。实体/属性名称和其他此类规则的长度可能是多少?

【问题讨论】:

标签: entity-framework edmx


【解决方案1】:

查看 xsds。加载工件 (CSDL/MSL/SSDL) 时有两步验证 1 - 使用 xsd,2 内部验证检查在大多数情况下无法在 xsd 中表达的附加规则。 EF6 现在是开源的,但以前版本的 xsd 架构没有改变。你可以找到他们here。 (映射架构在 MappingSpecification 文件夹中)。

如果您查看 v3 CSDL 架构,则属性名称指定如下:

<xs:simpleType name="TSimpleIdentifier">
    <xs:restriction base="xs:string">
        <xs:maxLength value="480" />
        <!-- The below pattern represents the allowed identifiers in ECMA specification -->
        <xs:pattern value="[\p{L}\p{Nl}][\p{L}\p{Nl}\p{Nd}\p{Mn}\p{Mc}\p{Pc}\p{Cf}]{0,}" />
    </xs:restriction>
</xs:simpleType>

如果您不想打扰 xsds 并想利用内部验证,您可以将您的 xml 加载到相应的项目集合中。同样在 EF6 中添加了一些重载,允许您加载工件,但如果它们无效则不会引发异常,但会返回 null 和错误列表作为输出参数(在项目集合上查找公共静态工厂方法)。

【讨论】:

  • 谢谢帕维尔。这真的很有帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-28
  • 1970-01-01
相关资源
最近更新 更多