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

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

實例化后如何立即調用方法

實例化后如何立即調用方法

C#
BIG陽 2022-10-15 14:05:16
我有一個控制器,它調用 api 來獲取 Positions 和 Employees 的列表。首先,它將 api 結果放入模型類 - IDMSElements (1)。然后控制器獲取 IDMSElements 對象并將其轉換為 PositionSlots 對象 (2)。然后,PositionSlots 對象需要使用來自數據庫的附加數據進行更新 (3)。所以在我的控制器的簡化版本中,我有:        (1) IDMSElements elements = getslots.CopyDocToElements(doc);        (2) PositionSlots myslots = (PositionSlots)elements;                 (3) myslots.UpdateDetails(db);我擔心 myslots.UpdateDetails(db) 因為控制器中的其他代碼取決于已運行的 UpdateDetails。我希望在創建 PositionSlots 對象時默認運行 UpdateDetails。但我認為可能不應該在構造函數中進行多個數據庫調用。如何在實例化 PositionSlots 對象后自動調用 UpdateDetails?非常感謝!控制器:[Authorize]public class PSListController : Controller{    private static readonly log4net.ILog _logger = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);    private PositionControlContext db = new PositionControlContext();    private GetPositionSlots getslots = new GetPositionSlots();    ...    public async Task<ActionResult> ByCostCenter(int costCenter)    {        string ssapiuri = getslots.BuildAPIuri($"/current/?UDAKunit={costCenter.ToString()}");        _logger.Debug($"{ssapiuri.ToString()}");        Stopwatch stopWatch = new Stopwatch();        stopWatch.Start();        HttpResponseMessage result = await getslots.GetDataFromIDMSapi(ssapiuri);        stopWatch.Stop();        _logger.Debug($"Response received.  Milliseconds elapsed: {stopWatch.Elapsed.TotalMilliseconds.ToString()}");        if (result.StatusCode != HttpStatusCode.OK)        {            _logger.Debug("Error retrieving data from API.  Milliseconds elapsed: " + stopWatch.Elapsed.TotalMilliseconds.ToString());            throw new HttpException(404, "NotFound");        }        stopWatch.Restart();        XDocument doc = XDocument.Load(result.Content.ReadAsStreamAsync().Result);        stopWatch.Stop();        _logger.Debug($"API result loaded into XDocument.  Milliseconds elapsed: {stopWatch.Elapsed.TotalMilliseconds.ToString()}\n");        _logger.Debug(doc.ToString());    }
查看完整描述

1 回答

?
海綿寶寶撒

TA貢獻1809條經驗 獲得超8個贊

您可以通過編寫一個方法來實現這一點:

IDMSElement.ToPositionSlot(db)

然后按如下方式使用它:

PositionSlots myslots = elements.Select(x => x.ToPositionSlot(db))


查看完整回答
反對 回復 2022-10-15
  • 1 回答
  • 0 關注
  • 94 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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