在旧数据库上构建OData服务的最佳选择是什么?
所有教程都是从头开始创建数据库以匹配实体框架模型。
如何使用与正在公开的服务模型不匹配的现有数据库?
例如,我有这两个db表:
Science_Data {country_id varchar(3),year int,fig decimal}
Arts_Data {country_id varchar(3),year int,fig decimal}
我希望使用此路径/类别('科学')/数据和/类别('艺术')/数据(仅用于示例的ID)公开它
通过创建包含类别和数据实体的服务模型并创建控制器,我获得了一些成功:
public class CategoryController : ODataController
{
[EnableQuery]
[ODataRoute("/Category('{id}')/Data")]
public IQueryable<Sector> Get([FromODataUri]string id)
{
if (id == "Science")
{
return db.Science_Data.Select(i => new Data() { CountryId = i.country_id, Year = year, Figure = fig });
}
else if(id == "Arts")
{
return db.Arts_Data.Select(i => new Data() { CountryId = i.country_id, Year = year, Figure = fig });
}
}
}
这在一定程度上起作用并支持查询选项,过滤将在数据库级别进行。
但是我在支持$扩展选项方面遇到了问题,所以我想知道我的方法是否正确。