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



我必须在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

我不能为每个查询(连接)使用一个新类

创建一个模型类,如下所示:

public class YourModelClass
{
    private string _Name;
    public string Name
    {
        get { return _Name; }
        set
        {
            _Name = value;
        }
    }
    private string _LoginTime;
    public string LoginTime
    {
        get { return _LoginTime; }
        set
        {
            _LoginTime = value;
        }
    }
}

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

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>();
}

var 结果最终获得您想要的查询结果。

希望这对您有所帮助。

最新更新