首页 > 解决方案 > 实体框架触发存储过程

问题描述

这是从实体框架调用存储过程的正确方法吗?我需要执行提交并执行下一个事务吗?我正在获取 ReturnId 值,但它没有存储在数据库中,我不知道为什么

public ResultStatus InsertOrder()
{
    using (var db = new NccnEcommerceEntities())
        {
            using (DbContextTransaction dbTran = db.Database.BeginTransaction())
                {
                    ResultStatus result = new ResultStatus();
                    try
                    {

                        ObjectParameter ParameterDirection = new ObjectParameter("ReturnOrderId", 2);
                        var obj = db.usp_Public_Insert_Order(
                                  (int)cb.Customer.CustomerId,
                                  cb.Customer.Address[0].StreetLine1,
                                  cb.Customer.Address[0].StreetLine2,
                                  cb.Customer.Address[0].City,
                                  cb.Customer.Address[0].State.StateId,
                                  cb.Customer.Address[0].Zip,
                                  ).FirstOrDefault();


                        result.ReturnId = Convert.ToInt32(obj.OrderId);
                        result.ResultCode = Convert.ToInt32(Enums.Result.Code.Success);
                        result.Message = "Successfully added.";


                    }
                    catch (Exception ex)
                    {
                        result.Message = ex.ToString();
                        result.ResultCode = Convert.ToInt32(Enums.Result.Code.Error);
                    }
                    return result;
                }
        }
}

标签: c#entity-framework

解决方案


推荐阅读