Entity Framework 6 Custom SqlQuery возвращает нулевой объект - PullRequest
0 голосов
/ 03 февраля 2019

Я хочу выполнить динамический пользовательский запрос, который не привязан ни к какому объекту или классу в моем проекте.Он всегда будет возвращать ноль или 1 запись.

Я пробовал много вещей, но пока безуспешно:

// this is working function with hard-coded query
private Dictionary<string, string> getRecord(string id, string viewName)
{
    Peron p = db.Person.Where(e => e.ID == id).FirstOrDefault();
    var json = JsonConvert.SerializeObject(p);
    return JsonConvert.DeserializeObject<Dictionary<string, string>>(json);
}

, но мне нужно это с динамическим запросом к представлению базы данных, не добавляя модельв EF models.edmx.

private Dictionary<string, string> getRecord(string id, string viewName)
{
    string qry = "select * from " + viewName + " where ID='" + id + "'";
    var p = db.Database.SqlQuery<dynamic>(qry).FirstOrDefault();

    // p sometimes returns null on dynamic object, many times it throws 
    // an error "Cannot convert this to this" ....
    var json = JsonConvert.SerializeObject(p);
    return JsonConvert.DeserializeObject<Dictionary<string, string>>(json);
}
...