Cle*_*eve 1 c# sql-server entity-framework
我想使用实体框架(EF)查询SQL Server实例并返回该实例上的数据库名称列表。
我可以使用以下代码执行此操作,但想知道EF是否有办法?
public static string[] GetDatabaseNames(SqlConnection masterConn)
{
List<string> databases = new List<string>();
// retrieve the name of all the databases from the sysdatabases table
using (SqlCommand cmd = new SqlCommand("SELECT [name] FROM sysdatabases", masterConn))
{
using (SqlDataReader rdr = cmd.ExecuteReader())
{
while (rdr.Read())
{
databases.Add((string)rdr["name"]);
}
}
}
return databases.ToArray();
}
Run Code Online (Sandbox Code Playgroud)
我应该提到,我是EF及其功能/局限性的新手。
您可以简单地通过Entity Framework将原始查询发送到SQL Server:
using (var context = new MyContext())
{
var dbNames = context.Database.SqlQuery<string>(
"SELECT name FROM master.dbo.sysdatabases").ToList();
}
Run Code Online (Sandbox Code Playgroud)
来源:https : //msdn.microsoft.com/en-us/library/jj592907 ( v= vs.113) .aspx和/sf/answers/10336371/