2016-09-08 7 views
1

私は次のようなものを試しましたが、うまくいかなかった。"PetaPoco"を使って "select"クエリORM

var _records = new string[] {"SqlServer", "IIS" };

var result = db.Fetch<EntityRecords>(@" select * from tblRecords where RecordName IN rs", new { rs = _records });

とも私は次のような別の方法を試してみましたが、最初の1があるべき

var _records = new string[] {"SqlServer", "IIS" };

var query = PetaPoco.Sql.Builder.Select("*").From("tblRecords").Where("RecordName IN (@rs)",new { rs = _records }); 
    var result = db.Query<EntityRecords>(query); 

答えて

1

同じ問題

var result = db.Fetch<EntityRecords>(@" select * from tblRecords where RecordName IN (@rs)", new { rs = _records }); 

または

var result = db.Fetch<EntityRecords>(@" select * from tblRecords where RecordName IN (@0)", _records); 

次のテストは

[Fact] 
    public void Append_GivenArrayAndValue_ShouldBeValid() 
    { 
     // Simple collection parameter expansion 
     _sql = Sql.Builder.Append("@0 IN (@1) @2", 20, new int[] { 1, 2, 3 }, 30); 

     _sql.SQL.ShouldBe("@0 IN (@1,@2,@3) @4"); 
     _sql.Arguments.Length.ShouldBe(5); 
     _sql.Arguments[0].ShouldBe(20); 
     _sql.Arguments[1].ShouldBe(1); 
     _sql.Arguments[2].ShouldBe(2); 
     _sql.Arguments[3].ShouldBe(3); 
     _sql.Arguments[4].ShouldBe(30); 
    } 

    [Fact] 
    public void Append_GivenArrayAndNamedValue_ShouldBeValid1() 
    { 
     // Simple collection parameter expansion 
     _sql = Sql.Builder.Append("@p1 IN (@p2) @p3", new { p1 = 20 }, new { p2 = new int[] { 1, 2, 3 }}, new { p3 = 30 }); 

     _sql.SQL.ShouldBe("@0 IN (@1,@2,@3) @4"); 
     _sql.Arguments.Length.ShouldBe(5); 
     _sql.Arguments[0].ShouldBe(20); 
     _sql.Arguments[1].ShouldBe(1); 
     _sql.Arguments[2].ShouldBe(2); 
     _sql.Arguments[3].ShouldBe(3); 
     _sql.Arguments[4].ShouldBe(30); 
    } 
+0

を渡すので、私は最初の例についてあまりよく分からない二番目の私を助けるために、それは良いとありがとう働いています – yats

関連する問題