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以相應地進行顯示。 (我不知道這是可能的。)