【发布时间】:2011-07-28 13:34:24
【问题描述】:
我正在尝试做这样的事情:
public class DataService : DataService<EmployeeCollection>
{
public IQueryable<EmployeeBase> GetEmployeeData(string EmpIdSubstring)
{
var employees = new List<EmployeeBase>();
employees.Add(new Level1Employee());
employees.Add(new Level2Employee());
return employees.AsQueryable();
}
}
这里:
-
Level1Employee和Level2Employee类派生自EmployeeBase类。 -
EmployeeBase类定义用[DataServiceKey("Id")]修饰。 -
EmployeeCollection包含一个IEnumerable<EmployeeBase>。
但是当我在浏览器中浏览该服务时,出现以下错误:
内部服务器错误。 'Level1Employee' 类型不是复杂类型或实体类型。
我尝试将[DataServiceKey] 属性从EmployeeBase 类移动到Level1Employee 和Level2Employee 类定义。但得到同样的错误。
请注意,如果我返回包含 EmployeeBase 类型元素的员工集合,则该服务可以正常工作。
有可能实现吗?非常感谢任何帮助/指示/见解。
【问题讨论】:
-
如果您发布代码、XML 或数据示例,请在文本编辑器中突出显示这些行并单击编辑器上的“代码示例”按钮 (
{ })工具栏以很好地格式化和语法突出显示它!如果您发布错误消息,请使用块引号 (` " ` ) 正确格式化错误消息。
标签: c# wcf exception-handling wcf-data-services odata