나는 개체가 이미 null의 경우 사용하여 문을 초기화하는 하나의 방법이 있어야합니다 같은 느낌이 코드가 좀 덜 중복이 될 수 있도록 노력하고 있습니다설치
public static CMSContent GetContent(string title, ContextDb db = null)
{
if (db == null)
{
using (db = new ContextDb())
{
return db.CMSContents.FirstOrDefault(c => c.Title == title && !c.Archived);
}
}
else
{
return db.CMSContents.FirstOrDefault(c => c.Title == title && !c.Archived);
}
}
호출 문이 반환 된 개체에 대해 추가 db 요청을 실행하려고하거나 여러 호출이있을 수 있으며 연결이 여러 연결을 완화하기 위해 미리 설정되어 있기 때문입니다.
return 문을 복제 할 수 없으면 db가 null이고 then을 사용하면 더 좋을 것입니다.
이것은 설계상의 혼란으로 보입니다. 이 방법은 간단하지만 좋은 방법이지만 그 방법의 책임은 무엇인지 혼란 스러울 것 같습니다. 데이터를 검색하거나 컨텍스트를 만드는 것이 목적입니까? 방법을 너무 많이 사용하면 위와 같은 문제가 발생합니다. – Nkosi
내가 프로그램하는 것을 선호하는 방식이 아니지만 오래된 프로젝트이고 팀에 속해 있기 때문에 다시 작성할 수는 없습니다. – Tod
그러면 당신은 구속력이 있습니다. using 문은 범위를 기반으로하므로 해당 메서드 내에서 해당 메서드 내에서 db가 만들어지면 null이며 null이 아닌 경우 제공된 db가 사용 범위 내에 있는지 여부를 알 수있는 방법이 없습니다. – Nkosi