Silverlight 4.0 如何从代码中的上下文动态获取实体集合?

Silverlight 4.0 如何从代码中的上下文动态获取实体集合?,silverlight-4.0,entity-framework-4,wcf-ria-services,Silverlight 4.0,Entity Framework 4,Wcf Ria Services,假设我有两个表:tab1,tab2,带有EF和Wcf Ria服务,在domaincontext的客户端有两个实体tab1,tab2。 然后我想在代码中动态获取entityset,比如 MyDomainContext.Entities("Tab1"); 如何执行此操作?在客户端代码中,您将有一个参考,例如: using System.ServiceModel.DomainServices.Client; 然后加载实体集合,如下所示: var ctx = new MyDomainContext(

假设我有两个表:tab1,tab2,带有EF和Wcf Ria服务,在domaincontext的客户端有两个实体tab1,tab2。 然后我想在代码中动态获取entityset,比如

MyDomainContext.Entities("Tab1");

如何执行此操作?

在客户端代码中,您将有一个参考,例如:

using System.ServiceModel.DomainServices.Client;
然后加载实体集合,如下所示:

var ctx = new MyDomainContext();

ctx.Load<tab1>( _ctx.GetTab1Query(), LoadBehavior.RefreshCurrent, (op) => 
    {
      var data = op.Entities;
    } , null );
var ctx=newmydomaincontext();
Load(_ctx.GetTab1Query(),LoadBehavior.RefreshCurrent,(op)=>
{
var数据=经营实体;
},空);

在上面的代码片段中,服务器端域服务为您提供了GetTab1Query。

我在Kyle McClellan的代码中看到了这一点。他接受一个字符串参数并调用一个操作(或查询)。这现在是ComboBoxDataSource模块中项目的一部分

要点(来自ComboBoxDataSource.cs,刷新方法):


谢谢在您的解决方案中,Tab1是硬编码的。我希望Tabl可以是一个参数,这样我就可以得到不同的entityset,比如Tab1s,Tab2s,。@KentZhou这是可能的,但是如果你想做到这一点,你需要自己编写你的DomainService代码。
Type domainContextType = this.DomainContext.GetType();
MethodInfo operationInfo = domainContextType.GetMethods().Where(
    m => (m.Name == this.OperationName) && (m.GetParameters().Count() == this.Parameters.Count)).FirstOrDefault();

this.Operation = (InvokeOperation)operationInfo.Invoke(this.DomainContext, this.Parameters.Select(p => p.Value).ToArray());
this.Operation.Completed += this.OnInvokeCompleted;