Я пытаюсь научить себя шаблону хранилища, и у меня есть вопрос передового опыта.
Представьте, что у меня есть сущность (это сущность linq to sql, но я разобрал всю linq наSQL-код и атрибуты аннотаций данных для наглядности):
public class Person
{
public int Id { get; set; }
public string FirstName { get; set; }
public string Surname { get; set; }
public string Telephone { get; set; }
}
На данный момент абстрактное хранилище для моего интерфейса:
public interface IPersonRepository
{
IQueryable<Person> Person { get; }
void Add(Person person);
void SubmitChanges();
// I want an Edit method here
// I want a Delete method here
}
У меня такой вопрос: какой будет сигнатура методадля методов редактирования / удаления?Каковы будут лучшие практики для них?Например, если бы Id был единственным «не редактируемым» (то есть ключевым) свойством Person, как бы вы это реализовали?
Должен ли Edit принимать параметр Person, а затем код метода редактирования искать сущность с предоставленным идентификатором и редактировать таким образом?
Следует ли удалить параметр Person или просто идентификатор?
Я пытаюсь придумать, какой самый логичный и понятный способ сделать это, но я запутался, поэтому подумал, что я попрошу!
Спасибо!