C# Entity Framework Core write raw SQL without model
C# Entity Framework Core write raw SQL without model
首先,我看到了这个 post: 但我觉得它没有回答我的问题。
我有一个 ASP.NET 核心 MVC 项目,其中 Entity Framework 核心(目前最新)。
我需要做的是:
public IActionResult MyView(string NameOfTable)
{
// send model that is same as NameOfTable
// or
// send something like List<string> that has properties and names of columns
return View();
}
我想做的是调用一个函数并在数据库中发送 table 的名称。它将在数据库中找到 table 和 return table 的属性(列名,列类型 [int/varchar..])。
我认为可行的方法:将原始 SQL 写入数据库。
我认为这是一个很好的答案:关于如何在不知道模型的情况下编写原始 SQL 来查询数据库的一些片段。或者解决这个问题的方法。
谢谢你所做的一切。对不起,如果这是一个愚蠢的问题。
抱歉打扰大家了。我找到了解决方案。这是:
public class AA
{
public string One { get; set; }
public string Two { get; set; }
}
private async Task pokus()
{
List<AA> groups = new List<AA>();
var conn = _db.Database.GetDbConnection();
try
{
await conn.OpenAsync();
using (var command = conn.CreateCommand())
{
string query = "SELECT * "
+ "FROM TABLE";
command.CommandText = query;
DbDataReader reader = await command.ExecuteReaderAsync();
if (reader.HasRows)
{
while (await reader.ReadAsync())
{
try
{
var row = new AA { One = reader.GetString(1), Two = reader.GetString(2) };
groups.Add(row);
}
catch { }
}
}
else
{
Console.WriteLine("Dont have rows");
}
reader.Dispose();
}
}
finally
{
conn.Close();
}
foreach(AA s in groups)
{
Console.WriteLine(s.One);
Console.WriteLine(s.Two);
}
}
希望对大家有所帮助。
首先,我看到了这个 post:
我有一个 ASP.NET 核心 MVC 项目,其中 Entity Framework 核心(目前最新)。
我需要做的是:
public IActionResult MyView(string NameOfTable)
{
// send model that is same as NameOfTable
// or
// send something like List<string> that has properties and names of columns
return View();
}
我想做的是调用一个函数并在数据库中发送 table 的名称。它将在数据库中找到 table 和 return table 的属性(列名,列类型 [int/varchar..])。
我认为可行的方法:将原始 SQL 写入数据库。
我认为这是一个很好的答案:关于如何在不知道模型的情况下编写原始 SQL 来查询数据库的一些片段。或者解决这个问题的方法。
谢谢你所做的一切。对不起,如果这是一个愚蠢的问题。
抱歉打扰大家了。我找到了解决方案。这是:
public class AA
{
public string One { get; set; }
public string Two { get; set; }
}
private async Task pokus()
{
List<AA> groups = new List<AA>();
var conn = _db.Database.GetDbConnection();
try
{
await conn.OpenAsync();
using (var command = conn.CreateCommand())
{
string query = "SELECT * "
+ "FROM TABLE";
command.CommandText = query;
DbDataReader reader = await command.ExecuteReaderAsync();
if (reader.HasRows)
{
while (await reader.ReadAsync())
{
try
{
var row = new AA { One = reader.GetString(1), Two = reader.GetString(2) };
groups.Add(row);
}
catch { }
}
}
else
{
Console.WriteLine("Dont have rows");
}
reader.Dispose();
}
}
finally
{
conn.Close();
}
foreach(AA s in groups)
{
Console.WriteLine(s.One);
Console.WriteLine(s.Two);
}
}
希望对大家有所帮助。