获取Entity Framework中列的最大长度

时间:2013-03-06 21:17:15

标签: c# entity-framework linq-to-entities intellisense sqldatatypes

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

enter image description here

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

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


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

如果我输入类似Class.ColumnName的内容,它会在智能感知中显示,就像摘要信息一样。

2 个答案:

答案 0 :(得分:0)

Intellisense将显示文档中的任何文本 - >设计师的摘要字段。这给了你一些选择。

1)你可以真的是OCD,在设计师中编辑你的EDMX后,你一定要总是填写这个字段。

2)您创建了一些脚本来解析.edmx(您可以像编辑任何XML文件一样编辑它),查找指定了<Property>的{​​{1}}元素,并添加{{1内部和MaxLength元素,只是说明最大长度是多少。例如,解析:

<Documentation>

成:

<Summary>

编辑完成后,您只需打开设计器并重新保存即可重建.Designer.cs / vb。

3)以某种方式让Visual Studio知道一个类来自EDMX,然后返回解析EDMX以获取MaxLength,然后更新Intellisense以相应地显示。 (我不知道这是否可行。)

答案 1 :(得分:0)

一种方法是在类中声明它并使用此类(而不是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