C# 使用EF打开到DB的连接以执行临时查询

C# 使用EF打开到DB的连接以执行临时查询,c#,asp.net-mvc,entity-framework,C#,Asp.net Mvc,Entity Framework,我是一个asp.net硬核,EF+MVC=ME+WTF 我的任务是打开与每个生产数据库服务器的连接。运行一个简单的查询“从t1中选择顶部1*,其中f1>1” 我想我可以使用system.data.sqlclient构建conn字符串,打开conn并执行查询 这似乎不起作用。每一次连接都要花很长时间 如何让db对象的实例使用EF执行此操作。我已经看到了大量的dbcontext示例,但我甚至不知道如何获得它以及它是什么 我需要连接到20个独立的DB1、TBL1、FLD1并执行上面的查询。如果它们都成

我是一个asp.net硬核,EF+MVC=ME+WTF

我的任务是打开与每个生产数据库服务器的连接。运行一个简单的查询“从t1中选择顶部1*,其中f1>1”

我想我可以使用system.data.sqlclient构建conn字符串,打开conn并执行查询

这似乎不起作用。每一次连接都要花很长时间

如何让db对象的实例使用EF执行此操作。我已经看到了大量的dbcontext示例,但我甚至不知道如何获得它以及它是什么

我需要连接到20个独立的DB1、TBL1、FLD1并执行上面的查询。如果它们都成功了,则返回int 200到MVC视图,即使其中一个视图失败,也只返回503


谢谢

您可以使用
Database.Connection
在EF中获取对底层
DbConnection
的引用

例如:

var dbConn = context.Database.Connection;

var cmd = dbConn.CreateCommand();
cmd.CommandText = "SELECT TOP 1 * from t1 WHERE f1 > 1";

var results = cmd.ExecuteReader();
更多关于

A-如果您不知道该实体

 using (var context = new BloggingContext())
{
    var blogNames = context.Database.SqlQuery<string>(
                       "SELECT Name FROM dbo.Blogs").ToList();
}
using (var context = new BloggingContext())
{
    var blogs = context.Blogs.SqlQuery("SELECT * FROM dbo.Blogs").ToList();
}

问题是什么?我们该怎么回答呢?