Я пишу простое приложение MVC с таблицами People и Notes.
Использование метода хранилища и LINQ to SQL для доступа к данным.
У каждого человека есть отдельная заметка длядень, и примечание имеет CreatedAt.Внешний ключ в таблице заметок как PersonID.
Мне удалось заставить CRUD работать независимо для Персоны и Заметки, но я хотел бы иметь возможность отображать заметку одного человека за один день на мой взгляд.
В моем репозитории я создал помощника, который, я думаю, должен работать, но я не уверен, как бы использовать его в своем контроллере.
public IQueryable<Note> FindSinglePersonsNote(int id)
{
return from Note in db.Notes
where Note.CreatedAt > DateTime.Now.AddDays(-1)
&& Note.PersonId == id
select Note;
}
Что я 'Я бы хотел, чтобы это произошло, когда я нажму на ссылку с информацией о человеке, чтобы показать имя человека и заметку, связанную с этим человеком на сегодня.
Любая помощь будет принята.
Приветствия
Том
Обновление:
Мне кажется, я уже близко ...
Мой контроллер Person теперь выглядит так
public ViewResult PersonNote(int personId)
{
var personNote = new PersonNoteViewModel
{
person = scrumRepository.GetPerson(personId),
note = scrumRepository.GetNote(personId)
};
return View(personNote);
}
И я создал новое представление под названием PersonNote
и попытался получить доступ к значениям следующим образом:
<%= Model.person.PersonName %>
<%= Model.note.Issues %>
И мой репозиторий выглядит так:
public Note GetNote(int id)
{
return db.Notes.SingleOrDefault(d => d.PersonId == id);
}
public Person GetPerson(int id)
{
return db.Persons.SingleOrDefault(d => d.PersonId == id);
}
Но я получаю очень странную ошибку при попытке просмотреть страницу.
Словарь параметроввставляет пустую запись для параметра 'personId' ненулевого типа 'System.Int32' для метода 'System.Web.Mvc.ViewResult PersonNote (Int32)' в 'ScrumApp.Controllers.PersonController'.Необязательный параметр должен быть ссылочным типом, обнуляемым типом или быть объявлен как необязательный параметр.Имя параметра: параметры