【发布时间】:2017-09-17 10:30:59
【问题描述】:
我正在创建一个允许用户运行 SQL SELECT 命令的工具,结果将显示在 HTML 表中。我正在使用 ASP.NET Core MVC 并试图避免使用 SqlConnection/SqlCommand/etc。如果可能,直接通过DataContext。
例如,如果有人输入
"SELECT Id, Name FROM Table"
结果是
Id | Name
------------
1 | 'Bob'
2 | 'Harry'
我希望Json(results) 成为
[
{ Id: 1, Name: "Bob" },
{ Id: 2, Name: "Harry"}
]
我认为结果的类型为IEnumerable<object>。
我现在拥有的是我的存储库中的一个方法,例如
public List<object> RunQuery(string query)
{
using(MyDbContext context = new MyDbContext())
{
return context.MiscTable.FromSql<object>(query).ToList();
}
}
但是我得到了一个例外,比如
$exception {System.InvalidOperationException:“FromSql”操作的结果中不存在所需的列“SomeColumn”。
其中SomeColumn 是MiscTable 上的某个列。所以显然我只能使用FromSql 查询特定的表。有没有办法做我想做的事?
【问题讨论】:
-
context.Database.SqlQuery
可以满足您的需求。 msdn.microsoft.com/en-us/library/jj592907(v=vs.113).aspx -
在 .NET Core 的数据库中似乎不存在 :(
-
如果缺少类定义,您打算如何访问对象成员?
标签: c# asp.net-mvc linq asp.net-core asp.net-core-mvc