0

是否可以使用EF返回來自多個不同存儲過程的嵌套複雜類型? (例如ClientSelect,ClientAddressSelect)使用存儲過程從EF4中返回嵌套複雜類型

我導入了一些存儲過程並添加了函數導入併爲每個返回類型創建了一個複合類型。 (例如客戶端和客戶端地址)。

現在,例如,我想將ClientAddress複雜類型添加到客戶端複雜類型。我將使用ClientSelect返回Client的所有值,然後使用ClientAddressSelect填充ClientAddress。

當我嘗試運行ClientSelect我得到以下錯誤:

"Nested ComplexType property 'ClientAddresses' in the ReturnType 'Client' of the function 'myModel.ClientSelect' is not supported, please consider flattening the nested ComplexType property." 

這使得它看起來像這是不可能的,有另一種方式圓嗎?我正在使用WCF RIA Services,並希望在將其發送到Silverlight客戶端之前在服務器端填充完整的Client對象。

任何幫助/建議表示讚賞。

回答

0

我加入複雜類型聲明爲局部類解決了這個問題,使用[Include]和[Associate]屬性。

using System.ServiceModel.DomainServices.Server; 
using System.ComponentModel.DataAnnotations; 

public partial class Client 
{ 
    [Include] 
    [Association("Client_Address", "ClientAddressID", "ClientAddressID")] 
    public IEnumerable<ClientAddress> Addresses { get; set; } 
} 

我然後調用一個SP來填充客戶端,然後一個單獨的存儲過程來填充Client.Addresses