簡體   English   中英

使用RIA服務插入實體和從屬實體

[英]Inserting an entity and dependent entities using RIA Services

我有一個關於使用RIA Services(帶有Silverlight 4.0)插入具有相關實體的實體的問題。

假設我的(sql)數據庫中有一個名為“ Beer”的實體,一個名為“ Supplier”的實體,其關系為: Beer 1-n Supplier 一種啤酒有多個供應商。

現在有以下用例:用戶輸入了5個供應商的新啤酒。

在Silverlight視圖上,我現在得到了兩個DomainDataSource 在Beer DomainDataSource我添加並提交新啤酒,在Supplier DomainDataSource我現在提交供應商,其中包含將他們鏈接到啤酒的外鍵。

我的問題是:我如何確保首先提交啤酒,然后再提交依賴(記住外鍵)供應商?

我知道我可以使用OnSubmitted事件簡單地鏈接SubmitChanges() 但是這個解決方案很不錯。。。la腳。 它使一些非常丑陋的代碼。

感謝您提出的所有建議!

不幸的是,沒有辦法強制同一ChangeSet中的更新順序。

但是,如果所有新供應商都使用新啤酒(大IF)提交給服務器,則可以在Upddate方法中手動檢查ChangeSet:

public void UpdateBeer(Beer beer)
{
    foreach(ChangeSetEntry changeSetEntry in ChangeSet.Entries)
    {
        if (changeSetEntry.Entity.GetType() == typeof(Supplier))
        {
            Supplier supplier = (Supplier)changeSetEntry.Entity;
            UpdateSupplierInternal(supplier);
        }
    }

    DataContext.Beers.Attach(beer, ChangeSet.GetOriginal(beer));
}

那調用了一個單獨的方法來更新供應商。 您仍然需要一個UpdateSupplier方法,否則RIA會在ChangeSet中存在它時將引發異常,但是該方法不應執行任何操作:

public void UpdateSupplier(Supplier supplier)
{
    // do nothing
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM