私はWebアプリケーションを使用してAzureでホストしていますが、階層に関係なくSQLプールが完全に高速になるという問題があります。 ApplicationDbContextを処分する必要があると私は考えていましたが、これは必須ですか?これは役に立ちますか?私は他のActionResultの方法で同じコンテキストを使用していますが、ASP.NETコアでApplicationDbContextを破棄する
private readonly ApplicationDbContext _context;
private readonly IEmailSender _emailSender;
public MessagesController(ApplicationDbContext context, IEmailSender emailSender)
{
_context = context;
_emailSender = emailSender;
}
// GET: Message
[Authorize]
public async Task<IActionResult> Index()
{
var user = _context.Users.Where(u => u.Email.Equals(User.Identity.Name)).Select(u =>
new { u.Name, u.Subdomain, u.PhotoURL }).FirstOrDefault();
ViewData["Name"] = user.Name;
ViewData["Subdomain"] = user.Subdomain;
ViewData["PhotoURL"] = (user.PhotoURL == null) ? "../../img/avatar.png" : user.PhotoURL;
List<Message> messages = await _context.Messages.Where(m => m.UserName.Equals(User.Identity.Name))
.Select(m => new Message { ID = m.ID, DateTime = m.DateTime, Text = m.Text }).ToListAsync();
return View(messages);
}
私は_context.dispose()を呼び出す必要があります:以下
は指数はSQLのほとんどの時間を利用した方法で私のクラスの一部ですか?
は)いいえ、あなたは(_context.disposeを呼び出す必要はありませんそんなに
あなたの答えをありがとう。あなたが上記に書いたことをやったことがありますか?なぜ私のプールが非常に速くいっぱいになったのかまだ理解していないからです。上記のコードに問題があるかどうか教えてください。 – Techy
コードは正常に見えます... –