C# 哪些实体类型需要为Web API OData实体框架解决方案生成控制器?

C# 哪些实体类型需要为Web API OData实体框架解决方案生成控制器?,c#,entity-framework,odata,asp.net-web-api2,C#,Entity Framework,Odata,Asp.net Web Api2,我有一个模型第一实体框架项目。它包含枚举、复杂类型以及与继承类型的1:1关系 我有一种优惠券类型。优惠券具有从ValueOffBase基数继承的单个FixeOff或PercentOff实体 问题:我需要向抽象基类添加控制器吗?或者只是每个concreate子类 我还有一个名为DateRange的EF复杂类型,它有一个开始日期和结束日期。我也要为此添加控制器吗?如果您想添加ODataController,我认为您不需要为抽象基类添加控制器。事实上,OData controller遵循以下名称约定:

我有一个模型第一实体框架项目。它包含枚举、复杂类型以及与继承类型的1:1关系

我有一种优惠券类型。优惠券具有从ValueOffBase基数继承的单个FixeOff或PercentOff实体

问题:我需要向抽象基类添加控制器吗?或者只是每个concreate子类


我还有一个名为DateRange的EF复杂类型,它有一个开始日期和结束日期。我也要为此添加控制器吗?

如果您想添加ODataController,我认为您不需要为抽象基类添加控制器。事实上,OData controller遵循以下名称约定:

public class {EntitySetName}Controller : ODataController
{
...
}
与DateRange相同


我建议您可以使用属性路由。然后您可以使用任何类名来创建控制器。是属性路由的介绍。

您可以使用[ResponseTypetypeofValueOffBase]运行,它应该允许您同时返回这两个属性。然后你可能需要用[KnownTypeOffExedoff]和[KnownTypeOffPercentoff]来装饰,这样序列化程序就知道会发生什么。Brad,谢谢。听起来很合理,但我仍然想知道是否应该将Add控制器指向基类、每个子类或它们的一些组合。我从你的回复中“猜测”到我会在基类中添加一个控制器,然后用这些属性装饰它?谢谢!调查这件事。