在我的项目中,我使用的是使用EF的数据服务。现在我有一个我想通过我的数据服务公开的自定义类,但我无法使它工作,似乎不可能在单个数据服务中混合自定义类型和EF。有什么建议吗?
看起来它没有在元数据中找到一些信息。
错误:
服务器遇到错误 处理请求。例外 消息是'无法加载元数据 对于返回类型 “System.Linq.IQueryable
1[ITS.NetProject.Model.CustomEnty]' of method 'System.Linq.IQueryable
1 [ITS.NetProject.Model.CustomEnty] GetCustomEnties() ''。查看服务器日志 更多细节。异常堆栈 跟踪是:....
代码:
[ServiceBehavior(IncludeExceptionDetailInFaults=true)]
public class ITSServiceOData : DataService<ITSEntities>
{
public static void InitializeService(DataServiceConfiguration config)
{
config.SetEntitySetAccessRule("*", EntitySetRights.All);
config.SetServiceOperationAccessRule("GetCustomEnties",
ServiceOperationRights.AllRead);
config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2;
}
[WebGet]
public IQueryable<CustomEnty> GetCustomEnties()
{
return from e in this.CurrentDataSource.CustomEnties select e;
}
}
///Here it is my model definition
namespace ITS.NetProject.Model
{
partial class ITSEntities
{
public IQueryable<CustomEnty> CustomEnties
{
get
{
return ...
}
}
}
//Company, Equipment, Owner are EF entity classes
[DataServiceKey("Id")]
public class CustomEnty
{
public int Id {get;set;}
public Subject Company { get; set; }
public Subject Equipment { get; set; }
public Subject Owner { get; set; }
}
}
答案 0 :(得分:1)
不,数据服务不支持该方案。您可以将自定义类型添加到Entity Fx模型中,但这远非理想......
答案 1 :(得分:0)
嗯免费骑手 - 将类和对象放入模型中并正确执行。根据上面的建议。 - 或制作单独的简单模型。使用相同的连接字符串。
或者那个讨厌的黑客...
_context.Database.ExecuteSqlCommand(cmdText, parameters);
当没有人看啤酒oClock。 : - )