[英]How to prevent rollback of entire ChangeSet when PersistChangeSet fails in Silverlight/RIA
[英]How To Do Validation in Silverlight/RIA When A Call To Database Is Required?
我覺得有比現在更好的方法。
我正在使用Silverlight 4,RIA和EF(帶有Oracle適配器)。 我正在將一條記錄插入表中,並使用Validation屬性對其進行大量驗證,但是我有一項驗證需要在插入新記錄之前先查詢數據庫以檢查現有記錄(這似乎應該常見且容易的要求,不是嗎?
現在,我正在使用DomainService上的Invoke方法在客戶端進行此操作。 這似乎是la腳和愚蠢的。 但是我不知道如何在它真正屬於的服務器端進行操作。
似乎應該有一種方法可以處理所有此服務器端並向客戶端通知驗證錯誤,但是我無法弄清楚這一點,幾乎沒有人會采用這種特定的驗證方案。
WCF RIA提供了一種將驗證附加到服務器端實體的方法。 您將按照以下命名規則的方式構建一個類。
public static partial class FooRules
{
public static ValidationResult FooIDUnique(Foo foo, ValidationContext context)
{
bool check = false;
using (FooEntities fe = new FooEntities())
{
check = fe.Foo.Any(f => f.FooId == foo.fooId);
}
if (!check)
return ValidationResult.Success;
return new ValidationResult("FooID error msg,", new string[] { "FooID" });
}
}
我整理了一個示例應用程序,其中顯示了使用RIA添加驗證客戶端和服務器端。
您可以在這里下載。
我不知道如何鏈接到特定條目,但請查看此線程。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.