我想使用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();
}值得一提的是,我对EF及其功能/限制还很陌生。
发布于 2018-01-24 17:32:58
您可以简单地通过Entity Framework向SQL Server发送一个原始查询:
using (var context = new MyContext())
{
var dbNames = context.Database.SqlQuery<string>(
"SELECT name FROM master.dbo.sysdatabases").ToList();
}资料来源:https://msdn.microsoft.com/en-us/library/jj592907(v=vs.113).aspx和https://stackoverflow.com/a/147662/2699126
发布于 2018-01-24 17:51:26
在SQL数据库中创建视图
CREATE VIEW [dbo].[SysDatabasesView] AS SELECT * FROM sys.databases然后将此对象添加到edmx中
https://stackoverflow.com/questions/48418847
复制相似问题