我有一個edmx
模型從數據庫和metadata.cs創建。如何獲取服務器端的字段的字符串長度?
在客戶端中,.g.cs
包括[StringLength(X)]
屬性以及來自我的元數據的屬性。
我正在做一些服務器端驗證的平面文件導入,這是單獨的這些實體的客戶端編輯器。
我能夠應用我的範圍和正則表達式驗證,但我無法找到服務器上的StringLength屬性。有沒有人知道如何做到這一點,而無需在元數據屬性上手動複製StringLength屬性。
編輯:
下面是一些代碼:
服務器端的文件ProductService.metadata.cs:
internal sealed class PRODUCTMetadata
{
[Required]
[RegularExpression("[A-Z]+")]
[Display(Name = "Product Code", Order = 10)]
public string Product_code { get; set; }
}
客戶端Generated_Code \ NameSpace.Web.g.cs:
public sealed class PRODUCT
{
[DataMember()]
[Display(Name="Product Code", Order=10)]
[RegularExpression("[A-Z]+")]
[Required()]
[StringLength(8)] //This is what I want to know, but server side
public string Product_code
{...etc
}
}
請指定客戶端和服務器下的含義是什麼?你有WCF服務,其他類型的服務或某種Web UI客戶端嗎? – 2012-02-07 14:23:54
@OleksandrPshenychnyy它是服務器端ASP網站項目上的「支持Silverlight的WCF服務」。客戶端是Silverlight,這是自動生成的'.g.cs'文件所在的位置,這是正確的,但我無法從服務器代碼訪問該文件。 – weston 2012-02-07 14:27:59
對不起,我沒有在Silverlight中進行過驗證。但總的來說,通過WCF服務使用相同的對象進行數據庫訪問和通信並不是一個好習慣。其實我不明白爲什麼edmx文件在客戶端上產生一些屬性?你的客戶是否可以直接訪問DB?這是服務器的責任。 – 2012-02-07 14:35:16