将LinqToSql与OData WebApi结合使用



我们有一个使用LinqToSql作为其ORM的项目,我们希望使用OData版本4公开我们的实体(因此,据我所知,我们不能使用WCF Data Services,而应该使用Web Api)。

到目前为止,我在网上找不到任何示例或文档来展示如何将LinqToSqlOData WebApi一起使用。

问题是ODataConventionModelBuilderEntityFramework一起工作(事实上,它的默认约定集与DataComponentModel注释一起工作,而这些注释在我们的LinqToSql实体中没有使用)

我正在寻找一个与System.Data.Linq.Mapping配合使用的ODataModelBuilder来制作模型。

另一种解决方案是为ODataConventionModelBuilder找到一组正确的约定,该约定与LinqToSql映射注释一起使用。

我不知道这个模型构建器是否存在,或者我们应该自己实现它?

Linq到SQL没有现成的模型生成器。有几种不同的方法可以解决你的问题。

  • ODataModelBuilder派生一个自定义生成器类,用于识别System.Data.Linq.Mapping中定义的注释。

  • 使用库存ODataModelBuilder的方法手动构建模型。

  • 构建一组数据传输类,这些类表示要通过服务公开的确切类型和属性,然后编写一个实用程序,用于将数据传输对象转换为数据存储对象,反之亦然。在数据传输层中,类可以遵守ODataConventionModelBuilder识别的约定(例如,对于名为Foo的类,密钥属性被命名为IdFooId)。转换实用程序可以在像AutoMapper这样的库的帮助下轻松编写。请参阅ASP.NET WebApi OData对WebApi中DTO、DTO和投影的支持,以及Web API Deep Dive-DTO转换和自动映射器。

最新更新