这是使用的正确用法吗?

c#

我不确定如何正确使用 using 语句。

我像这样尝试:

[HttpDelete("{ClubId}", Name = "DeleteOpenings_Club")]
public async Task<IActionResult> DeleteClub_IsOpening([FromRoute] string ClubId)
{
        using (_db_ClubIsOpen)
        {
            var result = _db_ClubIsOpen.ClubIsOpen_TBL.Where(x => x.FK_Club == ClubId);

            foreach (var item in result)
            {
                _db_ClubIsOpen.ClubIsOpen_TBL.Remove(item);
            }

            _db_ClubIsOpen.SaveChanges();

            return Ok();
        }
}

回答

using 与生命周期管理相关,这是一个复杂的问题。

通常,using您在此处部署的用途将用于您的方法拥有的东西;例如,这里:

using (var dbContext = new DbContext(whatever))
{
    // some code
}

(或只是using var dbContext = new DbContext(whatever);在最近的 C# 版本中)

在上面,我们显然是在创建事物,因此我们的工作是确保它得到处理,这要归功于using.

但是,在问题中的示例中,不清楚_db_ClubIsOpen是什么,生命周期是什么,或者谁拥有它。默认情况下,我绝对不会假设一个方法负责获取任意字段的所有权,所以我希望在using这里使用,using (_someField)如问题所示。取而代之的是,我希望无论是一些DI / IoC框架来处理与(如果被注入的话),或者我期望的类型来实现IDipsosable,并与放置在现场交易Dispose()


以上是这是使用的正确用法吗?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>