我正在尝试使用新的Entity Framework Core存储过程.我需要很快启动新项目,这将是ASP.Net 5,但不确定实体框架是否适合这项工作.应用程序将每分钟触发几个存储过程,我需要输出参数.EF会对此有好处还是我应该使用ADO.Net?
我试过FromSql和database.ExecuteSqlCommand但没有运气.
using (AppDbContext db = factory.Create())
{
var in1 = new SqlParameter
{
ParameterName = "ParamIn1",
DbType = System.Data.DbType.Int64,
Direction = System.Data.ParameterDirection.Input
};
var in2 = new SqlParameter
{
ParameterName = "ParamIn2",
DbType = System.Data.DbType.String,
Direction = System.Data.ParameterDirection.Input
};
var out1 = new SqlParameter
{
ParameterName = "ParamOut1",
DbType = System.Data.DbType.Int64,
Direction = System.Data.ParameterDirection.Output
};
var out2 = new SqlParameter
{
ParameterName = "ParamOut2",
DbType = System.Data.DbType.String,
Direction = System.Data.ParameterDirection.Output
};
var result = db.Database.ExecuteSqlCommand("exec spTestSp", …Run Code Online (Sandbox Code Playgroud) 基本上我遇到的问题是我想在数据库中运行一个查询,它不是我的模型的表示。
这是我创建与另一个数据库的连接的代码:
public static OtherContext GetNewContextGeneric(string connectionString)
{
var builder = new DbContextOptionsBuilder();
builder.UseSqlServer(connectionString);
OtherContext db = new OtherContext(builder.Options);
return db;
}
Run Code Online (Sandbox Code Playgroud)
这是我执行查询的代码:
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();
}
}
Run Code Online (Sandbox Code Playgroud)
有人可以帮助我吗?