我有一个程序可以查询任意数量的基于 sql 的数据源并将数据作为数据表返回。查询的名称和传递的参数决定了返回数据的确切结构。
我现在已经通过 wcf web-api 端点公开了其中的一些功能。
我想知道,有没有一种方法可以作为 odata 端点,将数据表中的行作为 poco 动态返回?
就像是:
enter code here
[Queryable]
public IQuerable<dynamic> Get(string datasourceName, string view, string parametersAndValues)
{
var parameters = ApiControllerHelpers.GetNameValueCollectionFromString(parametersAndValues);
var ds = datasourceRepository.FindDatasourceByName(datasourceName);
var dataManager = ds.GetDataManager();
DataTable dataTable = dataManager.DataTableDataRepository.GetDataTable(parameters, view);
var dynamcicTable = dataTable.AsDynamicEnumerable();
return dynamcicTable;
}
通过这个设置,我得到了一组抱怨序列化等的 WCF 数据错误。所以我想我的问题是,对于 odata 支持,我的类是否必须是静态类型的?