我想要 sqlite 数据库中存在的表列表,并且我有一个简单的查询,如下所示:
SELECT name from sqlite_master WHERE type='table';
但现在我需要使用 Entity Framework 核心执行此操作,因此我将其绑定(bind)到 DataContext,这就是我陷入困境的地方,因为数据上下文包含表的所有表示形式作为数据库集,但不包含 sqlite 系统表,我尝试使用对公开的数据库外观进行查询,但它不返回任何其他值,然后返回它所影响的行数,例如:
using (var ctx = new DataContext())
{
var query = @"SELECT name from sqlite_master WHERE type='table';"
string[] result = ctx.Database.ExecuteSqlCommand(query);
return result;
}
还有其他方法可以获取该信息吗?
最佳答案
您可以直接将 ADO.NET 命令与 EntityFrameworkCore 结合使用
using (var ctx = new DataContext())
{
using (var command = ctx.Database.GetDbConnection().CreateCommand())
{
command.CommandText = "SELECT name from sqlite_master WHERE type='table'";
ctx.Database.OpenConnection();
using (var result = command.ExecuteReader())
{
while (result.Read())
{
Console.WriteLine(result.GetString(0));
}
}
}
}
关于c# - Entity Framework 核心并从sqlite数据库获取表列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55394827/