C# 将LinqToSql与OData WebApi一起使用?
我们有一个使用C# 将LinqToSql与OData WebApi一起使用?,c#,asp.net-web-api,linq-to-sql,odata,C#,Asp.net Web Api,Linq To Sql,Odata,我们有一个使用LinqToSql作为ORM的项目,我们希望使用OData版本4公开我们的实体(据我所知,我们不能使用WCF数据服务,而应该使用webapi) 到目前为止,我在网上找不到任何示例或文档说明如何使用LinqToSql以及odatawebapi 问题是ODataConventionModelBuilder与EntityFramework一起工作(实际上,它的默认约定集与DataComponentModel注释一起工作,这些注释在LinqToSql实体中未使用) 我正在寻找一个使用Sys
LinqToSql
作为ORM
的项目,我们希望使用OData
版本4公开我们的实体(据我所知,我们不能使用WCF数据服务
,而应该使用webapi
)
到目前为止,我在网上找不到任何示例或文档说明如何使用LinqToSql
以及odatawebapi
问题是ODataConventionModelBuilder
与EntityFramework
一起工作(实际上,它的默认约定集与DataComponentModel
注释一起工作,这些注释在LinqToSql
实体中未使用)
我正在寻找一个使用System.Data.Linq.Mapping
制作模型的ODataModelBuilder
另一个解决方案是为使用LinqToSql
映射注释的ODataConventionModelBuilder
找到一组正确的约定
我不知道这个模型生成器是否存在,或者我们是否应该自己实现它?对于Linq to SQL,没有现成的模型生成器。有几种不同的方法可以解决你的问题
- 派生自
自定义生成器类,该类可识别ODataModelBuilder
中定义的注释System.Data.Linq.Mapping
- 使用stock
的方法ODataModelBuilder
- 构建一组表示要通过服务公开的确切类型和属性的数据传输类,然后编写一个实用程序,用于将数据传输对象转换为数据存储对象,反之亦然。在数据传输层中,类可以遵守
认可的约定(例如,对于名为ODataConventionModelBuilder
的类,关键属性被命名为Foo
或Id
)。转换实用程序可以在类似的库的帮助下轻松编写。看,还有FooId
ODataModelBuilder
类,它要求你明确地构建模型。例如,builder.EntityType().HasKey(f=>f.FooID)
,等等。您必须手动指定所有这些信息,而不是依赖一组可以发现数据模型中的类型、属性和关系的约定。