У меня есть таблица базы данных GTL_TITLES , в которой есть два внешних ключа, AuthorId
и PublisherId
. Если я хочу запросить заголовок из базы данных, я хочу также получить информацию из таблиц AUTHOR и PUBLISHER . Для этого я создал хранимую процедуру, которая объединяет все три таблицы и выбирает следующие столбцы:
My GtlTitle Model class выглядит так:
public string ISBN { get; set; }
public string VolumeName { get; set; }
public string TitleDescription { get; set; }
public string PublisherName { get; set; }
public DateTime PublicationDate { get; set; }
public Author TitleAuthor { get; set; }
public Publisher Publisher { get; }
Как вы уже могли догадаться, class Author имеет две строки: FirstName
и LastName
и Publisher имеет PublisherName
.
Сказано, что это метод, вызывающий базу данных:
public GtlTitle GetTitle(string ISBN)
{
using (var connection = new SqlConnection(_connection))
{
connection.Open();
return connection.QuerySingle<GtlTitle>("GetTitleByISBN", new { ISBN }, commandType: CommandType.StoredProcedure);
}
}
И возвращает следующее: {"isbn":"978-0-10074-5","volumeName":"Volume Name - 97581","titleDescription":"Description - 97581","publisherName":"Publisher - 714","publicationDate":"2020-05-23T00:00:00","titleAuthor":null,"publisher":null}
Как видите, titleAuthor
и publisher
равны нулю. Как я могу это исправить? Нужно ли мне вместо этого писать поля типа public string FirstName
в классе модели GtlTitle или есть ли способ заполнить Author и Publisher ?