2

当我导入一个数据库到我的EDMX型号,我得到以下信息涉及到最大长度得到一个列的最大长度在实体框架

enter image description here

在上图中,我有String列最大长度为

有没有办法检查(编码时)这个最大长度,而不需要查看EDMX属性?要显示我多么希望的信息


样品:

如果我键入类似Class.ColumnName它显示在智能感知像摘要信息。

回答

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

0

智能感知将显示设计器的文档 - >摘要字段中的任何文本。这给了你几个选择。

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