【发布时间】:2011-03-17 23:10:03
【问题描述】:
在 EF 4 中,默认 ObjectSet 可用于每个实体。例如,我有表Employee,在生成Entity Model 之后,EF 将在Employee 上创建ObjectSet。 那么在使用 wcf ria 服务时,默认查询会是这样的:
public IQueryable GetEmployee() { 返回 this.ObjectContext.Employees; }
使用 objectSet,我可以对结果应用 include:
return this.ObjectContext.Employees.Include("Department");
然后我创建了一个存储过程,比如 MySearchForEmployee 并将其作为函数导入。结果映射到实体 Employee。调用函数时,结果是ResultSet,而不是ObjectSet。
我想通过调用存储过程来为域服务提供类似的方法:
public IQueryable<Employeer> GetMySearch(string keyword)
{
return this.ObjectContext.MySearchForEmployee(keyword).Include("Department");
}
但我不能因为上面的代码事件不能通过语法检查。
我尝试了以下方法来转换结果类型:
var results = this.ObjectContext.MySearchForEmployee(keyword);
var objsets = (ObjectSet<Employee>) results;
然后我得到错误: 无法将类型“System.Data.Objects.ObjectResult”转换为“System.Data.Objects.ObjectSet”
如何实现这个请求?
【问题讨论】:
标签: entity-framework wcf-ria-services domainservices