2010-05-04 142 views
1

我是Silverlight的新手,因此Silverlight中的數據訪問如此與我同在。我有一個引用sql server 2008數據庫的ADO.Net實體數據模型。導致問題的表被稱爲事務。交易表具有不可空的字段「MerchantChain」。此表由另一個程序填充,該程序在未提供商戶鏈時將空字符串插入到商戶鏈字段中。因此,在我的Silverlight應用程序中,我使用基於用戶提供的條件的事務加載網格。網格僅用於顯示,但我需要能夠在用戶查看後更新事務的狀態。所以我設置了transaction.status字段並嘗試提交更改。在提交更改之前,transaction.HasValidationErrors爲false。只要submitchanges被執行(在調試器中),HasValidationErrors就是true,並且submit會引發一個未處理的異常。 ValidationError是商務鏈字段是必需的。那麼,它是一個空字符串 - 它不是null。不知道該怎麼做。這是visual studio 2010,silverlight 4,vb.net。Silverlight RIA服務SubmitChanges驗證錯誤

+0

ouch我的同情。一個使字段不可爲空的設計,但將這樣的字段中的空字符串視爲可接受的和期望的值,這是一種麻煩。 – AnthonyWJones 2010-05-04 15:20:13

+0

@AnthonyWJones空白字符串與可空字符串不同。考慮查詢:SELECT * WHERE SomeString!='Foo',如果SomeString不可爲空,則結果集將包含空字符串值,如果它可爲空,那些空行將會丟失。空白字符串是'長度爲0的字符串',NULL是'沒有字符串,沒有長度,沒有任何東西' – Sprague 2010-11-02 18:21:58

+1

@Eugarps:嗯..好的謝謝你。 – AnthonyWJones 2010-11-02 22:09:26

回答

1

[必填(AllowEmptyString =真)]

你需要作出允許空字符串。去你的好友類,並添加此。更多細節可以在這裏找到:

http://forums.silverlight.net/forums/p/176631/398676.aspx

+0

謝謝 - 像冠軍一樣工作!對於VBers,它是[DomainServiceName] .metadata.vb文件。語法是 Bob 2010-05-17 14:45:31

+0

這只是我或MS在這裏可以做得更好? – 2010-05-29 17:50:11

+0

我不太清楚你的意思。我猜你的意思是不需要AllowEmptyString。基於RequiredAttribute強制執行驗證。如果有一個必需的字段綁定到一個文本框,我想我的驗證要求用戶輸入文本,除非我特別允許它。難點在於RIA從數據庫中推斷出這些屬性。所以db設計者標記了一個字符串字段'not null',所以默認情況下RIA也假定'不爲空字符串'。其背後的想法是,如果我看到[必填],我希望用戶必須輸入SOMETHING。 – JosephC 2010-06-26 18:31:02