实体字段上的Lightswitch验证将停止保存编辑屏幕

时间:2012-06-07 13:15:57

标签: visual-studio-lightswitch

在一个名为adDetail的实体中,我有一个非标识字段,它永远不应该有重复的值。 adShortURL。

我有一个自定义的新数据和附加到名为adDetail的实体的自定义编辑屏幕。

使用新数据屏幕时。该领域的验证效果很好。甚至去数据库检查重复值。

但是,当我使用现有数据编辑同一个表时,重复值验证会阻止屏幕保存。

试图确定屏幕名称,因此在验证周围放置一个if。没找到方法。试图设置一个屏幕参数,以便我可以在验证中查找它。那没用。自定义验证方法中没有可用的屏幕参数。 (可能不知道在哪里看。)

请帮我弄清楚如何验证添加并跳过编辑屏幕上的验证。

谢谢, 维克多

代码段:

partial void AdShortURL_Validate(EntityValidationResultsBuilder results)
{
   // results.AddPropertyError("<Error-Message>");
   // *** There is a Bug here that only happens on the Edit Screen.  On the edit screen, the check happens and finds a duplicate in the databae prohibiting saving.
   //Hit the database and see if there is already a value in there like the one I am Entering.
   IDataServiceQueryable<LSAR_AdDetail> adDetails = 
      this.DataWorkspace.OtLY83U6SQ72SZCG9OtData.LSAR_AdDetails.Where(i =>
         i.AdShortURL == this.AdShortURL);
}

1 个答案:

答案 0 :(得分:1)

我个人不会以这种方式查询它。您只是想查看是否存在已存在的一个,因此我将使用Int变量并返回AdShortURL ==您正在寻找的记录数。

    var myCount = (from items in this.DataWorkspace.OtLY83U6SQ72SZCG9OtData.LSAR_AdDetails
             where items.AdShortURL == this.AdShortURL
             select items).Execute().Count();