相关疑难解决方法(0)

实体框架核心 - 使用存储过程和输出参数

我正在尝试使用新的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)

asp.net entity-framework entity-framework-core

7
推荐指数
2
解决办法
6187
查看次数

如何使用 EF Core 执行 RAW SQL 查询?

基本上我遇到的问题是我想在数据库中运行一个查询,它不是我的模型的表示。

这是我创建与另一个数据库的连接的代码:

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)

有人可以帮助我吗?

c# entity-framework-core asp.net-core

5
推荐指数
1
解决办法
1万
查看次数