当我将数据库导入到我的 EDMX 模型时,我得到以下关于最大长度的信息
在上图中,我有最大长度为250的字符串列
有没有办法检查(在编码时)这个最大长度,而不需要查看 EDMX 属性?
我希望如何显示信息的示例:
如果我键入类似Class.ColumnName
它在 Intellisense 中显示的内容,例如摘要信息。
当我将数据库导入到我的 EDMX 模型时,我得到以下关于最大长度的信息
在上图中,我有最大长度为250的字符串列
有没有办法检查(在编码时)这个最大长度,而不需要查看 EDMX 属性?
我希望如何显示信息的示例:
如果我键入类似Class.ColumnName
它在 Intellisense 中显示的内容,例如摘要信息。
一种方法是在一个类中声明它并使用这个类(不是 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 属性 ASP.NET MVC3 with EF 4.1 Code First
C# 如何使用 DataAnnotations StringLength 和 SubString 删除文本
StringLengthAttribute 类
和字符串规范函数
Intellisense 将显示设计器的文档 -> 摘要字段中的任何文本。这为您提供了一些选择。
1) 你可能是真正的强迫症,在设计器中编辑你的 EDMX 时,你确保总是填写这个字段。
2)您创建一些脚本来解析您的 .edmx(您可以像编辑任何 XML 文件一样对其进行编辑),查找<Property>
具有MaxLength
指定的元素,并在其中添加<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 以相应地显示。(我不知道这是否可能。)