簡體   English   中英

WCF RIA服務和Windows Azure =>實體沒有定義鍵

[英]WCF RIA Services & Windows Azure => Entity has no key defined

背景資料

使用Windows Azure和WCF RIA服務進行開發,我已經看到了很多隨機錯誤和總體令人沮喪的情況,但這一次真的是頂峰。

我有一個具有以下架構的應用程序:2個Web角色(MVC3和帶有Silverlight RIA的ASP.NET)=>業務層=>數據層(外部服務/表存儲/ SQL Azure)。 ASP.NET服務(配置文件/角色/會話)存儲在表存儲中。

由於最近的需求變化,需要添加移動站點。 我想為兩個GUI項目共享(服務器端)ViewModels。 為了顯示:

在此輸入圖像描述

我的問題

當我的項目托管在Windows Azure環境中時,我現在得到了可怕的“未找到”異常。 用fiddler我發現它返回了以下異常:

DomainService“XXService”中的實體“XXModel”沒有定義鍵。 DomainService操作公開的實體類型必須至少有一個用KeyAttribute標記的公共屬性。

奇怪的是,這個東西在本地Azure開發環境中運行完美,但在上傳到雲時卻沒有。 我認為這個錯誤與ViewModels現在處於與RIA服務不同的程序集有關,但為什么它在本地而不是遠程工作?

如果有人需要任何補充信息,我將很樂意回答您的問題。

我已經解決了這個問題。 RIA服務似乎只有在Windows Azure中托管時,似乎無法從托管服務的其他程序集中定義的模型類中獲取屬性。

您的實體是否有標有[Key]屬性的屬性? 例如:

public class WidgetDef
{
    [Key]
    public int WidgetId { get; set; }

    public string Title { get; set; }
}

這對於與RIA DomainServices一起使用的類型是必需的 - 如問題中的錯誤消息中所述。

雖然我不知道為什么它可以在開發環境中工作而不是在真實環境中工作。

暫無
暫無

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

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