我正在使用WCV RIA服务,域服务和实体框架开发N层Silverlight 4.0解决方案。
然后我继续将此代码添加到我的域服务(MyDomainService.cs)类中,如下所示:
public IQueryable GetJournalItemList() { return this.ObjectContext.ExecuteFunction(“GetJournalList”,null).AsQueryable(); }
我现在面临的问题是,当我构建我的解决方案时,我无法在Silverlight客户端应用程序中看到客户端生成的代码类(.g.cs)中的新代码。代理没有引用新的GetJournalItemList,它引用了新添加的存储过程。
所以这是我的问题:如何强制刷新客户端生成的代码,以便显示对Domain Service类的更改?
谢谢
答案 0 :(得分:1)
您必须返回强类型结果。即。
public IQueryable<JournalItemList> GetJournalItemList()
{
return this.ObjectContext
.ExecuteFunction("GetJournalList", null).AsQueryable();
}
此外,如果尚未完成此操作,则JournalItemList必须定义一个键。您可以通过自定义分部类使用Metadatatype属性执行此操作。生成域服务时,将创建.metadata.cs
文件。应该有可以使用的例子。
[MetadataType(JournalItemList.Metadata)]
public partial class JournalItemList
{
public class Metadata
{
// Assuming that JournalItemList.JournalItemId exists
[Key]
public int JournalItemId { get; set; }
}
}