1

我正在研究一個asp.net應用程序。我有一個域程序集(主要包含命令和查詢代碼),一個Domain.Contract程序集(主要包含域對象),一個存儲庫(由域調用)和網站。使用Lightswitch和我自己的域對象:缺少參考

對於某些特定的後臺需求,我想創建一個Lightswitch應用程序。我想用我當前的域名作爲數據源。我添加了一個WCF Ria服務類庫,並在RiaService.Web項目中添加了一個基於DomainService的類,並使用一種查詢方法。沒有更多(沒有實體,因爲它們在我的Domain.Contract程序集中)

使用此處的幫助(感謝Michael W),我能夠添加數據源,並將我的域對象識別爲實體開關。

但是,我現在有一個編譯錯誤:在項目ServerGenerated的全局命名空間中找不到類型或命名空間名稱'MyDomain'(缺少程序集引用?)''。

具體的錯誤是在這一行: global :: Domain.Contract.MyObject result = new global :: Domain.Contract.MyObject(); 這是我的域對象(在我的Domain.Contract程序集中創建的)。

所以,我唯一需要做的就是添加一個引用做Domain.contract到ServerGenerated項目。

但它並未出現在Visual Studio中。將我對「服務器」項目的引用添加不能解決該錯誤。

謝謝。

+1

爲什麼投票? – Maciek

回答

1

在您的解決方案資源管理器窗口中,選擇ServerGenerated程序集,然後單擊「顯示所有文件」按鈕。這將顯示所有隱藏文件夾 - 包括爲WCF Ria生成的客戶端代碼。

如果沒有生成的代碼,這意味着服務實現可能有問題(通常會出現編譯錯誤),或者服務有其他問題 - 比如缺少[EnableClientAccess]屬性(我知道對於事實是沒有此屬性的服務不會生成客戶端代碼)。

要檢查的其他事情是將服務器端ria組件包含在您的主機項目中+在.config文件中提供正確的WCF ria配置(請求google)。

+0

非常感謝!我只希望ServerGenerated項目不會重新生成很多... – Guillaume

0

在您的解決方案資源管理器窗口中,選擇項目,然後單擊「顯示所有文件」按鈕並選擇「文件視圖」(不是邏輯視圖)。

然後添加引用到projet「ServerGenerated」(不是服務器項目)