EF code first 能执行普通的多表left join SQL语句,返回datatable吗

zhengyingcan 2016-09-06 11:22:47
以前我没有用过EF, 用动软代码生成器, 执行多表SQL语句 返回datatable,直接就以下方法
public static DataSet Query(string SQLString, int Times)
{
using (SqlConnection connection = new SqlConnection(factorychoice()))
{
DataSet ds = new DataSet();
try
{
connection.Open();
SqlDataAdapter command = new SqlDataAdapter(SQLString, connection);
command.SelectCommand.CommandTimeout = Times;
command.Fill(ds, "ds");
}
catch (System.Data.SqlClient.SqlException ex)
{
throw new Exception(ex.Message);
}
return ds;
}
}
如果用EF codefirst,是否也可以执行普通的SQL语句,谢谢大家。
...全文
448 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhengyingcan 2016-11-02
  • 打赏
  • 举报
回复
试了并不行,应该是我没有领悟到精髓

我写的破代码如下
DataTable ExportExcel()
{
using (var scope = _dbContextScopeFactory.Create())
{
var db = scope.DbContexts.Get<JuCheapContext>();
var dbSet = db.Set<TestEntity>();
var blogs = dbSet.SqlQuery("SELECT * FROM Test").ToList();
return blogs;
}
}
q107770540 2016-09-06
  • 打赏
  • 举报
回复
yes, you can:
using (var context = new BloggingContext()) 
{ 
    var blogs = context.Blogs.SqlQuery("SELECT * FROM dbo.Blogs").ToList(); 
}
CopyToDataTable: https://msdn.microsoft.com/en-us/library/bb396189(v=vs.110).aspx
zhengyingcan 2016-09-06
  • 打赏
  • 举报
回复
引用 3 楼 hanjun0612 的回复:
Database.SqlQuery<Model>(sql)
真好
正怒月神 版主 2016-09-06
  • 打赏
  • 举报
回复
Database.SqlQuery<Model>(sql)
baidu_31302759 2016-09-06
  • 打赏
  • 举报
回复
可以 只是我个人觉得linq更方便

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧