当我导入一个数据库到我的EDMX型号,我得到以下信息涉及到最大长度得到一个列的最大长度在实体框架
在上图中,我有String列最大长度为
有没有办法检查(编码时)这个最大长度,而不需要查看EDMX属性?要显示我多么希望的信息
样品:
如果我键入类似Class.ColumnName
它显示在智能感知像摘要信息。
当我导入一个数据库到我的EDMX型号,我得到以下信息涉及到最大长度得到一个列的最大长度在实体框架
在上图中,我有String列最大长度为
有没有办法检查(编码时)这个最大长度,而不需要查看EDMX属性?要显示我多么希望的信息
样品:
如果我键入类似Class.ColumnName
它显示在智能感知像摘要信息。
一种方法是声明它的类,并使用这个类(不是EDMX),例如:
[Column("Name")]
[Required(ErrorMessage = "Name is obligatory")]
[StringLength(30, MinimumLength = 3, ErrorMessage = "Name has to have at least 3 characters")]
public string Name { get; set; }
然后我用一个用户控件在屏幕上检查它。 (我知道有更好的解决方案)
PS:这个类是有点复杂,有很多定制的,如果有人想它,我可以在未来发布。
但是,你可以查看更多关于它在这些链接:
StringLength vs MaxLength attributes ASP.NET MVC3 with EF 4.1 Code First
C# How to use DataAnnotations StringLength and SubString to remove text
StringLengthAttribute Class
和String Canonical Functions
智能感知将显示设计器的文档 - >摘要字段中的任何文本。这给了你几个选择。
1)你可以是真正的强迫症,并在设计师编辑你的EDMX时,请确保总是填写此字段。
2)创建一些脚本来分析您的.edmx(您可以编辑它就像任何XML文件),寻找具有指定MaxLength
一个<Property>
元素,并添加<Documentation>
和<Summary>
元素中,简明扼要地道出了最大长度是。例如,解析:
<Property Name="USER_NAME" Type="String" MaxLength="50" Unicode="true" FixedLength="false" >
到:
<Property Name="USER_NAME" Type="String" MaxLength="50" Unicode="true" FixedLength="false" >
<Documentation>
<Summary>Max length of 50</Summary>
</Documentation>
</Property>
然后后您的编辑完成后,所有你需要做的是刚刚开放的设计师和再次保存重建了.Designer.cs/VB 。
3)以某种方式让Visual Studio知道某个类来自EDMX,然后返回解析EDMX以获取MaxLength,然后更新Intellisense以相应地进行显示。 (我不知道这是可能的。)