簡體   English   中英

.Net核心交易另一個Dll

[英].Net Core Transaction Another Dll

lib.ParamsInsert是通過另一個dll調用的。 當throw語句出現問題時,事務將回滾。 但是,無法撤消paramsInsert中的操作。

在lib.ParamsInsert中,有一個錯誤的事務。

                spcarikart.Repository lib = new spcarikart.Repository();
                using (var transaction = db.Database.BeginTransaction())
                {
                    try
                    {
                        var result = db.Acenta.Add(obj).Entity;
                        var a = lib.ParamsInsert(db, new Params
                        {
                            Baslik = "Bahdir",
                            Deger = "1"
                        });

                        // ....Maybe Error other process

                        db.SaveChanges();
                        return result;
                    }
                    catch (Exception ex)
                    {
                        transaction.Rollback();
                    }
                }

參數插入

            using (var transaction = db.Database.BeginTransaction())
            {
                try
                {
                    var resul = db.Params.Add(obj).Entity;
                    db.SaveChanges();
                    transaction.Commit();
                    return resul;
                }
                catch (Exception ex)
                {
                    transaction.Rollback();
                    throw new Exception();
                }
            }

他們使用不同的交易。 如我所見,不要啟動新事務,因為您使用相同的db上下文,所以不必在paramsInsert啟動事務, paramsInsert using (var transaction = db.Database.BeginTransaction())刪除它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM