저장 프로 시저로 데이터베이스를 쿼리하는 다음 코드가 있습니다. ReturnObject.familymembers = multi.Read<InternalObjects.Person>().AsQueryable();
이 null이 아니면 반환 값은 괜찮습니다. 그러나 Dapper/linq를 통해 컬렉션 유형으로 null 반환을 처리하는 방법을 찾을 수 없습니다. 결과가 null 일 때 더 이상 다중 매핑 된 IEnumerable 목록의 기본값
내 저장 프로 시저
:ReturnObject.familymembers
설정
SELECT states.name as stateName, fam.*
FROM Family fam
WHERE [email protected]
SELECT person.*
FROM person
INNER JOIN Family fam on fam.Id = person.idFamily
WHERE [email protected]
두 번째 SQL 문은 레코드가 어떤 문제를주지 않는다, 그러나 나는 기본을 지정하거나 단정 한에서 널 반환을 처리하는 방법을 알아내는 데 문제가 있어요. 디버깅 할 때 행이 반환되지 않으면 ReturnObject.familymembers = multi.Read<InternalObjects.Person>().AsQueryable()
은 null 예외를 throw합니다.
ReturnObject.familymembers = multi.Read<InternalObjects.Person>().AsQueryable().DefaultIfEmpty<InternalObjects.Person>();
public InternalObjects.FamilyDashboard GetDashboardInfo(string username)
{
InternalObjects.FamilyDashboard ReturnObject = new InternalObjects.FamilyDashboard();
using (var dbConnection = _dbConnectionFactory.CreateConnection())
{
using (var multi = dbConnection.QueryMultiple("DashboardSP", new { username = username }, commandType: CommandType.StoredProcedure))
{
ReturnObject = multi.Read<InternalObjects.FamilyDashboard>().SingleOrDefault();
ReturnObject.familymembers = multi.Read<InternalObjects.Person>().AsQueryable();
}
}
return ReturnObject;
}
내 DTO : 내가 답을 찾았습니다
public class InternalObjects
{
public class FamilyDashboard
{
public string physicalAddress1 { get; set; }
public string MailingAddress1 { get; set; }
public string physicalAddressCity { get; set; }
public string physicalAddressZip { get; set; }
public string MailingAddressCity { get; set; }
public string NumInHousehold { get; set; }
public string capidCounty { get; set; }
public string physicalUnit { get; set; }
public string mailingUnit { get; set; }
public string familyPhone { get; set; }
public string capCharacteristics { get; set; }
public IEnumerable<Person> familymembers {get; set;}
}
public class Person
{
public int Id { get; set; }
public string firstName { get; set; }
public string lastName { get; set; }
public string middleName { get; set; }
public int gender { get; set; }
public DateTime birthdate { get; set; }
public string emailPersonal { get; set; }
public string SSN { get; set; }
public string relationshipName { get; set; }
public string primaryLanguageName { get; set; }
public int age { get; set; }
}
}
무엇 코드에 대한로 실행 :
간단한 조건은 하루에 저장 ? 실제로 일어나지 않아야 할 일이 실제로 무엇입니까? – Servy
@Servy - 오류와 관련된 자세한 정보로 내 질문을 업데이트했습니다. – olingern
가족에 가입 한 상태에서 한 곳으로 질문하는 것이 어떨까요? – juharr