可以在控制器和模型之外使用Id属性吗? [关闭]

问题描述 投票:1回答:1

场景:在线预订系统

假设我们有一个在线预订系统,其中包含数据库中的客户列表,客户模型如下所示:

public class Customer
{
    public int Id { get; set; }
    public string Name { get; set; }
    public DateTime Birthdate { get; set; }
    public string drivingLicence { get; set; }
}

我们希望执行某些操作,例如:

  • 使用唯一的客户参考号搜索客户
  • 搜索客户通过客户参考编号进行的任何预订
  • 通过在视图的文本框中提供客户的ID来修改/创建预订

为此目的使用Id属性是否合适?或者首选为'CustomerReferenceNo'等每个对象创建一个新属性,并使用Id仅查询数据库,将Id属性保留在视图之外。

例:

到目前为止,我只使用Id属性查询数据库,如下所示:

public ActionResult Edit(int id)
        {
            // gets the customer details by accessing it's id
            var customerInDb = _context.Customers.SingleOrDefault(c => c.Id == id);

但是想知道这样使用它是否普遍常见:

注意'Id'是指客户ID属性,用于向特定酒店预订特定客户。

enter image description here

c# asp.net asp.net-mvc entity-framework
1个回答
0
投票

它仅对用户ID更好,仅用于数据库目的。我们不能依赖用户ID。此用户ID在不同环境中可能不同。

例如

客户'Xyz'存储在具有标识1的开发环境数据库中。相同的客户'Xyz'存储在具有标识11的测试环境数据库中。同一客户'Xyz'存储在具有标识21的实时环境数据库中。

最好使用在所有环境中都是唯一的客户参考号。希望这可以帮助!

© www.soinside.com 2019 - 2024. All rights reserved.