我正在构建一个托管在 IIS 7 中的 WCFDataService,我将使用 Reflection Provider 作为数据源提供程序。
如果我将实体类型定义保留在定义服务的同一程序集中,我的项目可以工作,但如果我将实体类型移动到另一个引用的程序集,我的项目就不起作用;
我收到以下错误:
“服务器在处理请求时遇到错误。异常消息是‘在数据上下文类型‘EntityContainer’上,有一个顶级 IQueryable 属性‘Cats’,其元素类型不是实体类型”
Service
public class WcfDataService1 : DataService<EntityContainer>
{
public static void InitializeService(DataServiceConfiguration config)
{
config.SetEntitySetAccessRule("Cats", EntitySetRights.AllRead);
config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V3;
}
}
实体容器
public class EntityContainer
{
public IQueryable<Cat> Cats
{
get
{
var s = new List<Cat>();
var c1 = new Cat {Id = 1, Name = "Fufi"};
var c2 = new Cat {Id = 1, Name = "Felix"};
s.Add(c1);
s.Add(c2);
return s.AsQueryable();
}
}
}
实体类型
[DataServiceKey("Id")]
public class Cat
{
public int Id { get; set; }
public string Name { get; set; }
}
正如我上面所说,一切都可以将 Cat 类与其他代码保持在一起,但我收到错误,将 Cat 类移动到引用的程序集
我缺少什么?
2小时后,头疼得厉害,我自己发现了问题,我正在参考微软我的服务中的.Data.Services.Client 和System.Data.Services.Client 在引用的项目库中,我将在其中移动实体类型。希望我的帖子可以帮助别人。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)