通过在Windows Phone的Sqllite数据库中运行sql查询来创建匿名类型列表

时间:2015-06-12 10:02:38

标签: c# linq sqlite windows-phone-8

我必须在sqllite db中运行sql查询并返回匿名结果。 我写了下面的代码。

    var userlist = new List < user_tbl > ();
    var userlogin = new List < user_login_history > ();
    string json = string.Empty;
    using(var dbConn = new SQLiteConnection(DB_PATH)) {
    userlist = dbConn.Query < user_tbl > ("select * from user_tbl");
    userlogin = dbConn.Query < user_login_history > ("select * from user_login_history");
    var listcom = (from n in userlist join ul in userlogin on n.id equals ul.UserID select new {
        n.name, ul.LoginTime
    }).ToList();
    json = JsonConvert.SerializeObject(listcom[listcom.Count - 1]);
}

现在我想在sql中编写连接查询并获取对象的匿名列表。

我试过

var templist = (from n in dbConn.Query<object>("select a.name,
                                               b.LoginTime    
                                               from user_tbl a inner join user_login_history b on a.id=b.UserID")
                select new 
                      { 
                        n.name, 
                        n.LoginTime 
                      }).ToList() 

哪个没有执行。有人可以帮我解决这个问题吗? 我正在使用Sqlite。

我不能为每个查询使用新类(加入)

1 个答案:

答案 0 :(得分:1)

创建一个模型类,同时显示选择字段,如下所示:

using (var db = new SQLite.SQLiteConnection(connection string))
{
    string query = "select a.name AS Name, b.LoginTime AS LoginTime from user_tbl a inner join user_login_history b on a.id=b.UserID";
    SQLiteCommand cmd = new SQLiteCommand(db);
    cmd.CommandText = query.ToString();
    var result = cmd.ExecuteQuery<YourModelClass>();
}

然后使用下面的代码spinet获取数据:

((PivotItem)MainPagePivot.Items[index]).Content = StatusGridObject;

AND var result 最终获得您的愿望查询的结果。

希望这对你有所帮助。