3

当我将数据库导入到我的 EDMX 模型时,我得到以下关于最大长度的信息

在此处输入图像描述

在上图中,我有最大长度为250的字符串列

有没有办法检查(在编码时)这个最大长度,而不需要查看 EDMX 属性?


我希望如何显示信息的示例:

如果我键入类似Class.ColumnName它在 Intellisense 中显示的内容,例如摘要信息。

4

2 回答 2

1

一种方法是在一个类中声明它并使用这个类(不是 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 类
字符串规范函数

于 2013-04-30T17:58:55.507 回答
0

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 以相应地显示。(我不知道这是否可能。)

于 2013-03-06T22:08:15.800 回答