[英]How to get a list of database names from a SQL Server instance using Entity Framework?
I would like to use Entity Framework (EF) to query a SQL Server instance and return a list of database names on that instance.我想使用实体框架 (EF) 来查询 SQL Server 实例并返回该实例上的数据库名称列表。
I can do this using the following code, but wondered if there was a way with EF?我可以使用以下代码做到这一点,但想知道是否有办法使用 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();
}
I should mention that I am new to EF and its capabilities / limitations.我应该提一下,我是 EF 及其功能/限制的新手。
You could simply send a raw query to your SQL Server through Entity Framework :您可以简单地通过 Entity Framework 向您的 SQL Server 发送原始查询:
using (var context = new MyContext())
{
var dbNames = context.Database.SqlQuery<string>(
"SELECT name FROM sys.databases").ToList();
}
Sources : https://msdn.microsoft.com/en-us/library/jj592907(v=vs.113).aspx and https://stackoverflow.com/a/147662/2699126来源: https ://msdn.microsoft.com/en-us/library/jj592907(v=vs.113).aspx 和https://stackoverflow.com/a/147662/2699126
You create view in SQL database您在 SQL 数据库中创建视图
CREATE VIEW [dbo].[SysDatabasesView] AS SELECT * FROM sys.databases
then add this object into edmx然后将此对象添加到 edmx
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.