简化模型以查看翻译

时间:2018-11-07 21:10:41

标签: c# model mapping viewmodel

我正在寻求有关如何最好地在C#中将模型映射到我的视图的建议。

数据库设计者选择了使用蛇形大小写的SQL命名约定。

因此,表可能看起来像:

public class Client
{
    public int Id { get; set; }
    public int ClientNumber { get; set; }
    public int ClientName { get; set; }
    public boolean IsActive{ get; set; }
}

据我了解,在模型/属性中使用下划线不是最好的标准,所以我的模型如下所示:

SELECT 
    Id As Id,
    Client_Name AS ClientName,
    Client_Number AS ClientNumber,
    Is_Active AS IsActive
FROM Client

我正在使用dapper,所以通常我只是像这样对列进行别名:

public JsonResult GetAll()
{
    var clients = clients.GetAll();
    JSON(client);
}

我不知道这是否是最好的方法,但目前为止仍然有效。目前,我已经翻译了一次。

现在我转到视图。这是一个api,因此通常是JSON,它使用camelCase。

{
    id: '0',
    clientName: 'Client1',
    clientNumber: '5555-55555'
    isActive: true
}

发送哪个

public JsonResult Add(AddClientViewModel addClientVM)
{

    var client = new Client({
        client.ClientName = addClientVM.clientName;
        client.ClientNumber = addClientVM.clientNumber;
        client.IsActive = addClientVM.isActive;
    })
    // Add client etc...
}

因此,格式已重新翻译。

现在我需要发布到应用程序中。

CREATE TABLE customers
  (
    sessionID  INT
   ,customerID VARCHAR(100)
  );

INSERT INTO customer
VALUES
  (10435, 'RTE')
 ,(2312, 'RTE')
 ,(2980, 'RTE')
 ,(1365, 'RTE')
 ,(1106, 'RTE')
 ,(9682, 'RTE')
 ,(5779, 'RTE')
 ,(3609, 'GTE')
 ,(2881, 'GTE')
 ,(4197, 'GTE')
 ,(2905, 'GTE')
 ,(6390, 'GTE')
 ,(4514, 'GTE')
 ,(7617, 'GTE')
 ,(7138, 'GTE')
 ,(5927, 'GTE')
 ,(397, 'GTE')
 ,(5949, 'LOA')
 ,(4324, 'LOA')
 ,(7399, 'LOA')
 ,(1459, 'LOA')
 ,(2016, 'LOA')
 ,(6650, 'LOA')
 ,(7562, 'LOA')
 ,(9057, 'nma')
 ,(3066, 'nma')
 ,(9184, 'nma')
 ,(8042, 'nma')
 ,(2348, 'nma')
 ,(9755, 'nma')
 ,(6770, 'nma')
 ,(661, 'nma')
 ,(4084, 'nma')
 ,(4991, 'nma')
 ,(8822, 'nma')
 ,(3632, 'nma')
 ,(2296, 'nma');

我基本上已经碰到了所有情况,只是一次又一次地变换对象。看起来很乏味。减少翻译和映射的最佳做法是什么。

谢谢。

0 个答案:

没有答案
相关问题