2009-11-22 24 views
1

我有以下利雅服務定義:利雅服務生成的代碼在Silverlight代碼,不可訪問

namespace SilverlightTest.Web 
{ 
    [EnableClientAccess()] 
    public class ContactService : LinqToEntitiesDomainService<AdventureWorksEntities> 
    { 
     public IQueryable<Contact> GetContactSearch(string lastName) 
     { 
      ContactRepository rep = new ContactRepository(); 
      return rep.SearchByLastName(lastName); 
     } 
    } 
} 

當我編譯的解決方案,我SilverlightTest項目並創建SilverlightTest.Web.g.cs文件和相應的上下文對象是在我看時創建的。但是,當我嘗試導入SilverlightTest.Web命名空間以訪問上述服務的Data Context類時,它說它無法找到Web命名空間。

我可以我在做什麼,很多的例子是在那裏在網絡上看到之間的唯一區別是,我AdventureWorksEntities數據上下文位於一個獨立的業務對象DLL。我試圖直接查詢上下文,而不是使用我正在嘗試執行的存儲庫模式,它也不工作。

任何想法?是否有可能讓Ria Services訪問單獨的DLL來處理數據訪問,還是需要在同一個項目中?

回答

2

我已經能夠把RIA服務放在一個單獨的項目之前,雖然我確實記得有問題。不確定它到底是什麼,但我會檢查兩件事:你的引用和你的web.config(在託管網站)。當您將一個ria服務添加到Web項目時,它會在幕後執行一些正確連接所有事情的事情。

可以嘗試暫時添加服務到您的Web項目並查看它添加的內容。

+0

當我添加另一個服務沒有改變。我將我的web.config與Brad Abrams的教程帖子的web.config進行了比較,也沒有看到任何不同。 – JamesEggers 2009-11-22 20:52:40

+0

你有一個參考Web項目中的服務項目? 此外,Silverlight項目屬性中有一個用於Ria服務鏈接的選項。雖然,如果你得到一個已經被標記的生成的web.g.cs文件。 – 2009-11-23 04:36:53

+0

我最終不得不在我的項目中包含生成的.g.cs文件,以便在VS2008中識別它。一旦我做到了這一點,它開始工作。您確認了我的更一般化的問題「是否可能」,以便標記您的答案。 – JamesEggers 2009-11-23 18:28:45

0

似乎Resharper不能識別.gs文件及其名稱空間。如果你禁用R#或只是沒有智能的代碼,它就可以工作。