我在 aspnetcore api 中使用 Microsoft.AspNetCore.OData 7.0.0-beta1。
我们的 EF 上下文当前反映了数据库架构(遗留问题),但是,我们通过标准 API 返回给客户端的模型与实体不同。它们仅返回字段的子集,并且属性的命名通常与列不同。
有人遇到过同样的问题吗?如果是这样,你的解决方案是什么?
目前我正在考虑我们最好和最简单的解决方案(但仍然有很多工作,因为我们的数据库模式非常大),是创建一个新的/单独的 EF 上下文和实体来反映我们想要如何公开 OData 模式给我们的客户并使用它。
有什么想法吗?
我会“创建一个新的\单独的 EF 上下文和实体,以反映我们希望如何向[您的]客户端公开 OData 架构并使用它。” 如果是 1-1 实体到表,您可以使用模型中的映射配置或数据库中的一组视图来完成此操作。 如果您需要更实质性的模式转换,您可能必须使用视图并映射到这些视图。