Dan*_*edo 5 c# entity-framework-core asp.net-core
基本上我遇到的问题是我想在数据库中运行一个查询,它不是我的模型的表示。
这是我创建与另一个数据库的连接的代码:
public static OtherContext GetNewContextGeneric(string connectionString)
        {
            var builder = new DbContextOptionsBuilder();
            builder.UseSqlServer(connectionString);
            OtherContext db = new OtherContext(builder.Options);
            return db;
        }
这是我执行查询的代码:
public List<IQueryble> Query (string connectionString, string query)
        {
            try
            {
                using(var contextGeneric = ContextFactory.GetNewContextGeneric(connectionString))
                {
                    //I want something like this
                    return contextGeneric.Query(query).ToList();
                }
            }
            catch(System.Data.SqlClient.SqlException ex)
            {
                throw new SQLIncorrectException(ex);
            }
            catch(System.InvalidOperationException ex)
            {
                throw new NotImplementedException();
            }   
        }
有人可以帮助我吗?
您可以使用DbDataReader:
using (var command = context.Database.GetDbConnection().CreateCommand())
{
    command.CommandText = "SELECT * From Make";
    context.Database.OpenConnection();
    using (var reader = command.ExecuteReader())
    {
        // Do something with result
        reader.Read(); // Read first row
        var firstColumnObject = reader.GetValue(0);
        var secondColumnObject = reader.GetValue(1);
        reader.Read(); // Read second row
        firstColumnObject = reader.GetValue(0);
        secondColumnObject = reader.GetValue(1);
    }
}
在这里您可以了解更多如何从中读取值DbDataReader。
或者,您可以使用FromSql()方法,但这仅适用于DbSet某些实体的预定义,这不是您想要的解决方案。
| 归档时间: | 
 | 
| 查看次数: | 14350 次 | 
| 最近记录: |