首页 文章

在使用WCF服务公开的客户端应用程序中使用实体框架实体

提问于
浏览
0

我有一个DAL,我有实体框架来公开实体 . 这些实体用于WCF服务项目并公开给客户端 .

我通过服务引用在Silverlight Web项目中使用这些实体 . 然后我使用RIA域服务进行代码共享 . 但是在尝试加载操作时出现以下错误:

DomainContext context= new DomainContext();
LoadOperation<Genre> lo = context.Load<Genre>(context.GetGenres());

GetGenres()是一个域服务操作,它加载所有类型 .

[Invoke]
    public IEnumerable<Genre> GetGenres()
    {
        return proxy.GetGenres();  //proxy is wcf proxy.
    }

此查询返回一个List . Genre是我从WCFServiceReference得到的DataContract .

实际错误:

类型'SL.Web.ServiceReference.Genre'不能在泛型类型或方法'System.ServiceModel.DomainServices.Client.DomainContext.Load(System.ServiceModel.DomainServices.Client.EntityQuery)中用作类型参数'TEntity' ” . 没有从'SL.Web.ChinookServiceReference.Genre'到'System.ServiceModel.DomainServices.Client.Entity'的隐式引用转换 .

问题是:

我可以这样做,还是应该在Silverlight中有一个自定义类,它映射到WCF服务datacontract并在Silverlight客户端和Web项目之间共享自定义实体?

有没有办法使用DomainService从Web和客户端之间的服务引用共享实体?

1 回答

  • 0

    问题是您将GetGenres标记为Invoke操作 . 如果您将其标记为查询操作并重建,我认为您将处于良好状态 .

相关问题