小巧玲珑,从方法参数传递参数查询Where子句

问题描述:

我刚开始看起来小巧玲珑的目标对.NET核心,但我在与下面的查询问题,小巧玲珑,从方法参数传递参数查询Where子句

string query = @" 
SELECT u.*, a.* FROM [System].[UnLocation] u 
INNER JOIN [Declaration].[AirTransportZone] a ON [u].[AirTransportZoneID] = 
[a].[AirTransportZoneID] 
WHERE u.Code = @0 "; 
     IUnLocationData domain = new UnLocationData(); 
    IQueryable<UnLocationData> data = m_DbConnection.Query<UnLocationData, AirTransportZoneData, UnLocationData>(
      query, 
      (u, a) => 
     { 
      u.AirTransportZone = a; 
      return u; 
     }, 
      splitOn: "AirTransportZoneID" 
      ).AsQueryable(); 

     domain.InjectFrom(data); 

     return domain; 

的方法是在上述位于它接受一个字符串类型的单个参数“代码”。我只需要将“代码”的方法值传递给我的查询。通常我只会做一些像

WHERE u.Code = @0, code 

我的查询变量(查询,代码...)不工作但后加入另一个参数。

我的解决方案证明是相当直截了当的。这是添加另一种说法顶部的查询功能的一个简单的例子:

新{代码=代码}

string query = @" 
SELECT u.*, a.* FROM [System].[UnLocation] u 
INNER JOIN [Declaration].[AirTransportZone] a ON [u].[AirTransportZoneID] = 
[a].[AirTransportZoneID] 
WHERE u.Code = @Code"; 

     IUnLocationData domain = new UnLocationData(); 
     IEnumerable<UnLocationData> data = m_DbConnection.Query<UnLocationData, AirTransportZoneData, UnLocationData>(
      query, (u, a) => 
      { 
       u.AirTransportZone = a; 
       return u; 
      }, 
      new { Code = code }, splitOn: "AirTransportZoneID" 
      ); 
+0

请使用您的问题编辑链接添加额外的信息。后回答按钮应该只用于问题的完整答案。 - [来自评论](/评论/低质量帖/ 15807230) – thanksd

+0

@thanksd它似乎是一个解决方案,为什么downvote? – VMAtm

+0

@VMAtm idk。不是我 – thanksd