2010-03-15 94 views
19

在RIA服务(VS2010Beta2)中迈出我的第一步,我遇到了这个问题: 在它上面创建了EF模型(无POCO),通用存储库和RIA服务在ASP.NET MVC应用程序中托管)并尝试从ASP.NET MVC应用程序中获取数据:运行良好。 下一步:Silverlight客户端。到了RIAService的引用(通过它的上下文),查询存储库的所有记录,并让他们到SL应用程序,以及(使用此代码示例):RIA Services EntitySet不支持'编辑'操作

private ObservableCollection<Culture> _cultures = new ObservableCollection<Culture>(); 
public ObservableCollection<Culture> cultures 
{ 
    get { return _cultures; } 
    set 
    { 
    _cultures = value; 
    RaisePropertyChanged("cultures"); 
    } 
} 

....

//Get cultures    
EntityQuery<Culture> queryCultures = from cu in dsCtxt.GetAllCulturesQuery() 
              select cu; 
loCultures = dsCtxt.Load(queryCultures); 
loCultures.Completed += new EventHandler(lo_Completed); 

....

void loAnyCulture_Completed(object sender, EventArgs e) 
{ 
    ObservableCollection<Culture> temp= 
    new ObservableCollection<Culture>loAnyCulture.Entities); 
       AnyCulture = temp[0]; 
} 

问题是这样的:每当我试图编辑记录的一些数据(在这个例子中,第一条记录)我得到这个错误: 此EntitySet的类型'文化'不支持'编辑'操作。

我以为我做了一件奇怪的事情,并试图创建一个文化类型的对象,并为它赋值:它工作的很好!

我在想什么?我必须声明一个EntitySet吗?我必须标记它吗?我必须......什么?

在此先感谢

回答

42

事实证明,在类的DomainService一个必须实现(或至少以纪念“占位符方法”)的“编辑”,“删除”,...如

[Delete] 
public void DeleteCulture(Culture currentCulture) 
{ 
    throw new NotImplementedException("UpdateCulture not Implemented yet"); 
} 
[Insert] 
public void InsertCulture(Culture newCulture) 
{ 
    throw new NotImplementedException("InsertCulture not Implemented yet"); 
} 

这种方式OrganizationDomainContextEntityContainer类创建一个带有参数EntitySetOperations.All(意味着所有的CUD操作都可用)的EntitySet。

希望它对未来的人有用!

+0

对我很有用:) – 2010-12-15 06:22:36

+0

@格雷科:很高兴我能帮忙! – 2010-12-16 17:51:09

+0

@SavvasSopiadis - 不错的工作,谢谢! – Rob 2012-11-22 05:56:46