Я пытаюсь сделать мой код достаточно интеллектуальным, чтобы открывать и удалять DBcontext Entity Framework только в том случае, если он необходим только в течение текущего времени выполнения рассматриваемого метода.
В принципе, если в метод передается реальный контекст, тогда я Не хочу избавиться от него.
Однако, если это необходимо только для текущего времени выполнения рассматриваемого метода, оно будет размещено в блоке finally
public int UpSertCompanyStockInfo( Guid companyId, string companyName, float stockPrice, float peRatio, CommunicationEngineDatabase context)
{
bool isContextOnlyCreatedForCurrentMethodExecutionRun = false;
if (context == null)
{
isContextOnlyCreatedForCurrentMethodExecutionRun = true;
context = new CommunicationEngineDatabase();
}
try
{
CompanyStockInfo companyStockInfo = new CompanyStockInfo();
companyStockInfo.CompanyName = companyName;
companyStockInfo.StockPrice = stockPrice;
context.CompanyStockInfoTable.Add(companyStockInfo);
context.SaveChanges();
}
catch (Exception _ex)
{
}
finally
{
if (isContextOnlyCreatedForCurrentMethodExecutionRun == true && context != null)
{
((IDisposable)context).Dispose();
}
}
return 0;
}
Проблема в том, что я чувствую, что вышеупомянутый код слишком много с точки зрения строк кода. Может кто-нибудь сказать мне, как сократить его (возможно, даже сделать это с помощью оператора using)?