首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >类型未知的EF ExecuteStoreQuery

类型未知的EF ExecuteStoreQuery
EN

Stack Overflow用户
提问于 2014-01-22 18:17:52
回答 2查看 782关注 0票数 0

我正在尝试执行下面的代码,当我将类型作为对象时,它得到了正确的执行,但我不知道如何从结果中读取数据。有没有其他方法可以做到这一点?

代码语言:javascript
复制
string sql = "select * from sys.columns where Name = N'@columnName' and Object_ID = Object_ID(N'@tableName')";
var args = new DbParameter[] { new SqlParameter { ParameterName = "columnName", Value = "Name2" }, new SqlParameter { ParameterName = "tableName", Value = "OrderDetails" } };
var students = ctx.ExecuteStoreQuery<object>(sql, args);
EN

回答 2

Stack Overflow用户

发布于 2014-01-22 18:36:52

如果你有一个可以保存查询结果的具体类型,我认为你可以这样做:

代码语言:javascript
复制
List<Student> students = new List<Student>(); 
students = ctx.ExecuteStoreQuery<student>(sql, args);

然后遍历列表

代码语言:javascript
复制
foreach (Student student in students)
{
        Console.WriteLine(student.Name); //or whatever
}
票数 0
EN

Stack Overflow用户

发布于 2014-01-22 22:14:12

这就是我想出的解决方案

代码语言:javascript
复制
string sql = "select * from sys.columns where Name = @columnName and Object_ID = Object_ID(@tableName)";

DataSet ds= new DataSet();
EntityConnection entityConn = (EntityConnection)ctx.Connection;
SqlConnection sqlConn = (SqlConnection)entityConn.StoreConnection;
SqlCommand cmd = new SqlCommand(sql, sqlConn);
SqlDataAdapter da = new SqlDataAdapter(cmd);
using (cmd)
{
       SqlParameter Prm = new SqlParameter("tableName", "OrderDetails");
       cmd.CommandType = CommandType.Text;
       cmd.Parameters.Add(Prm);
       da.Fill(ds);
 }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21280036

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档