所以我最近在一些项目中使用了 dapper,我很好奇以下示例之间是否存在任何性能差异:
对于具有许多属性 30+ 的对象,明确说明属性而不是让它自己弄清楚有什么好处?
选项1:
string sqlQuery = @"INSERT INTO [PTTicket]
([Id])
VALUES
(@Id)";
con.Execute(sqlQuery, ptTicket);
选项 2:
string sqlQuery = @"INSERT INTO [PTTicket]
([Id])
VALUES
(@Id)";
con.Execute(sqlQuery,
new
{
ptTicket.Id
}
我只是好奇手动提供值是否有任何好处,或者我是否可以传递对象并让 Dapper 拥有它的方式。
特别是随着列表开始增长:
选项 1b
string sqlQuery = @"INSERT INTO [PTTicket]
([Id]
,[Name]
,[SMState]
,[CreatedByMember]
,[StartDate]
,[ClosedDate]
,[Remarks])
VALUES
(@Id
,@Name
,@SMState
,@CreatedByMember
,@StartDate
,@ClosedDate
,@Remarks)";
con.Execute(sqlQuery, ptTicket);
选项 2b。
string sqlQuery = @"INSERT INTO [PTTicket]
([Id]
,[Name]
,[SMState]
,[CreatedByMember]
,[StartDate]
,[ClosedDate]
,[Remarks])
VALUES
(@Id
,@Name
,@SMState
,@CreatedByMember
,@StartDate
,@ClosedDate
,@Remarks)";
con.Execute(sqlQuery,
new
{
ptTicket.Id,
ptTicket.Name,
ptTicket.SMState,
ptTicket.CreatedByMember,
ptTicket.StartDate,
ptTicket.ClosedDate,
ptTicket.Remarks
});