在一个名为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);
}
答案 0 :(得分:1)
我个人不会以这种方式查询它。您只是想查看是否存在已存在的一个,因此我将使用Int变量并返回AdShortURL ==您正在寻找的记录数。
var myCount = (from items in this.DataWorkspace.OtLY83U6SQ72SZCG9OtData.LSAR_AdDetails
where items.AdShortURL == this.AdShortURL
select items).Execute().Count();