亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

C# 存儲過程中await關鍵字放在哪里

C# 存儲過程中await關鍵字放在哪里

C#
呼喚遠方 2023-06-25 13:43:35
我想實現一個async功能。我的問題是;我不知道在下面的代碼中將await關鍵字放在哪里:public async Task<List<ManualReadTag>> GetManuallyReadTags(ParameterManualTags model){    var db = new ApplicationDbContext();    using (var cnxn = db.Database.Connection)    {        cnxn.Open();        var cmd = cnxn.CreateCommand();        cmd.CommandText = "GetManualReadForDedicated";        cmd.CommandType = CommandType.StoredProcedure;        var dtFrom = cmd.CreateParameter();        dtFrom.ParameterName = "@DateFrom";        dtFrom.DbType = DbType.Date;        dtFrom.Direction = ParameterDirection.Input;        dtFrom.Value = model.DateFrom;        var dTo = cmd.CreateParameter();        dTo.ParameterName = "@DateTo";        dTo.DbType = DbType.Date;        dTo.Direction = ParameterDirection.Input;        dTo.Value = model.DateTo;        var lane = cmd.CreateParameter();        lane.ParameterName = "@Lane";        lane.DbType = DbType.Int32;        lane.Direction = ParameterDirection.Input;        lane.Value = model.Lane;        var plaza = cmd.CreateParameter();        plaza.ParameterName = "@Plaza";        plaza.DbType = DbType.String;        plaza.Direction = ParameterDirection.Input;        plaza.Value = model.Plaza;        cmd.Parameters.Add(dtFrom);        cmd.Parameters.Add(dTo);        cmd.Parameters.Add(lane);        cmd.Parameters.Add(plaza);        try        {            using (var reader = cmd.ExecuteReader())            {                var result = ((IObjectContextAdapter) db)                    .ObjectContext                    .Translate<ManualReadTag>(reader)                    .ToList();                return result;            }        }        catch (Exception ex)        {            Console.WriteLine(ex.Message);            MessageBox.Show(ex.Message);            return null;        }    }}這段代碼有效,我只需要輸入 intawait關鍵字,這樣我就可以使用async. 您能指出我正確的方法嗎?
查看完整描述

2 回答

?
神不在的星期二

TA貢獻1963條經驗 獲得超6個贊

您可以嘗試ExecuteReaderAsync改為:

await?cmd.ExecuteReaderAsync()


查看完整回答
反對 回復 2023-06-25
?
拉莫斯之舞

TA貢獻1820條經驗 獲得超10個贊

到處都有異步 API。并且不要忘記丟棄所有一次性用品。


public async Task<List<ManualReadTag>> GetManuallyReadTagsAsync(ParameterManualTags model)

{

    var db = new ApplicationDbContext();

    using (var cnxn = db.Database.Connection)

    {

        using (var cmd = cnxn.CreateCommand())

        {

            cmd.CommandText = "GetManualReadForDedicated";

            cmd.CommandType = CommandType.StoredProcedure;


            var dtFrom = cmd.CreateParameter();

            dtFrom.ParameterName = "@DateFrom";

            dtFrom.DbType = DbType.Date;

            dtFrom.Direction = ParameterDirection.Input;

            dtFrom.Value = model.DateFrom;


            var dTo = cmd.CreateParameter();

            dTo.ParameterName = "@DateTo";

            dTo.DbType = DbType.Date;

            dTo.Direction = ParameterDirection.Input;

            dTo.Value = model.DateTo;


            var lane = cmd.CreateParameter();

            lane.ParameterName = "@Lane";

            lane.DbType = DbType.Int32;

            lane.Direction = ParameterDirection.Input;

            lane.Value = model.Lane;


            var plaza = cmd.CreateParameter();

            plaza.ParameterName = "@Plaza";

            plaza.DbType = DbType.String;

            plaza.Direction = ParameterDirection.Input;

            plaza.Value = model.Plaza;


            cmd.Parameters.Add(dtFrom);

            cmd.Parameters.Add(dTo);

            cmd.Parameters.Add(lane);

            cmd.Parameters.Add(plaza);


            await cnxn.OpenAsync();


            using (var reader = await cmd.ExecuteReaderAsync())

            {

                var result = ((IObjectContextAdapter)db)

                    .ObjectContext

                    .Translate<ManualReadTag>(reader)

                    .ToList();

                return result;

            }

        }

    }

}


查看完整回答
反對 回復 2023-06-25
  • 2 回答
  • 0 關注
  • 152 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號