【问题标题】:Silverlight RIA Services SubmitChanges Validation ErrorSilverlight RIA 服务提交更改验证错误
【发布时间】:2011-02-15 12:39:54
【问题描述】:

我是 silverlight 的新手,因此在 silverlight 中进行数据访问,所以请耐心等待。我有一个引用 sql server 2008 数据库的 ADO.Net 实体数据模型。引起问题的表称为事务。交易表有一个不可为空的字段“MerchantChain”。此表由另一个程序填充,该程序在未提供商户链时将空字符串插入到商户链字段中。因此,在我的 silverlight 应用程序中,我根据用户提供的标准加载了一个包含事务的网格。网格仅用于显示,但我需要能够在用户查看事务后更新它的状态。所以我设置了 transaction.status 字段并尝试提交更改。在提交更改之前,transaction.HasValidationErrors 为 false。一旦 submitchanges 被执行(在调试器中) HasValidationErrors 为真并且提交抛出一个未处理的异常。 ValidationError 是merchantchain 字段是必需的。好吧,它是一个空字符串 - 它不为空。不知道该怎么做。这是视觉工作室 2010、silverlight 4、vb.net。

【问题讨论】:

  • 哎呀我的同情。使字段不可为空但将此类字段中的空字符串视为可接受和预期值的设计正在自找麻烦。
  • @AnthonyWJones 空白字符串与可空字符串不同。考虑查询:SELECT * WHERE SomeString != 'Foo',如果 SomeString 不可为空,则结果集将包含空白字符串值,如果可空,则那些空行将丢失。空字符串是'长度为0的字符串',NULL是'没有字符串,没有长度,没有任何东西'
  • @Eugarps:嗯.. 好的,谢谢。

标签: silverlight ria validationerror


【解决方案1】:

[必需(AllowEmptyString = true)]

您需要允许空字符串。去你的伙伴班并添加这个。更多细节可以在这里找到:

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

【讨论】:

  • 谢谢 - 像冠军一样工作!对于 VBers,它的 [DomainServiceName].metadata.vb 文件。语法是
  • 我不太清楚你的意思。我猜你的意思是不需要 AllowEmptyString。根据RequiredAttribute 强制执行验证。如果有一个必填字段绑定到文本框,我希望我的验证要求用户在其中输入文本,除非我特别允许。困难的部分是 RIA 从数据库中推断出这些属性。因此,数据库设计器将字符串字段标记为“非空”,因此默认情况下 RIA 也假定“非空字符串”。其背后的想法是,如果我看到 [Required],我希望用户必须输入 SOMETHING。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多