继承与类的属性

Sri*_*kar 2 c# rest

我正在创建一个Asp.Net MVC Rest Api.我有两件事.一个是我有一个用户,另一个是预订.根据用户类型返回结果.如果用户可以访问城市A,则表示他只能查看城市A的预订.我想根据3个参数搜索预订

  • 地点
  • 日期或
  • BookingId无论是​​前三名还是单独的bookingId +用户参数.

由于用户对象取决于预订,我的RestApi模型类应该如何设计.

应该是这样的

public class Booking : User{}
OR
public class Booking{ public User user { get;set; } }
Run Code Online (Sandbox Code Playgroud)

搜索预订需要用户详细信息.用户是指登录并使用系统并搜索预订的人员.

RestApi方法如下所示:

    [HttpPost]
    public HttpResponseMessage GetBookings(Booking booking)
    {}
Run Code Online (Sandbox Code Playgroud)

我想知道这种方法的优点和缺点,并建议我是否有更好的方法.

根据讨论[编辑]

它是多么合乎逻辑如果我在我的api.Client中为用户接受另一个参数,他正在调用我的Api必须将它作为参数传递.现在的代码是这样的吗?

[HttpPost]
public HttpResponseMessage GetBookings(Booking booking,User user)
{}
Run Code Online (Sandbox Code Playgroud)

Hay*_*tam 5

从逻辑上讲,一个Booking不是一个User,我们不能说一个预订是每天生活中的用户,所以你不能使用继承.

如果你考虑一下,一个Booking不属于特定User而且User没有特定Booking的.当想到这样的时候,我们可以看到两者之间并没有真正的关系,所有的用户都可以看到所有的预订,唯一的限制是用户是否真的有权看到所有这些或只是一个他们中的一部分.

一个更干净的方法是使用User's类型并Booking根据它获取所有s(如果需要,还有一些其他标准,如城市,位置等).所以我这样做的方法是不要在两个类之间建立关系,只是处理真正的关系,因为每个类User只能看到Booking由它的类型指定的s.