Я заметил, что на самом деле нет никаких рифм или причин, чтобы мои репозитории воспринимали объекты или примитивы как параметры, или же методы CREATE возвращают только int (ID из БД) или полноценный объект.Должны ли репозитории использовать объекты или примитивы?
Итак, мой вопрос в том, должны ли репозитории проходить и возвращать объекты или примитивы? Какой совет вы можете дать по этому вопросу? Можете ли вы поделиться любыми подводными камнями или опытом с любым подходом?
Пример:
public class ProductRepository : IProductRepository
{
// Pass in the whole object to the repo method...?
public int Add(Product product)
{
// return just the productId...?
}
// Pass in the individual primitive values...?
public Product Add(string productName, decimal productPrice, string description)
{
// return the whole Product object...?
}
}
Что если информация требуется от нескольких объектов? Разумеется, с точки зрения ООП лучше обходить объекты здесь, нет? (Я быть развязным здесь ...)
public int Add(int merchantId, Product product)
{
// database call needs merchant info...
}
public int Add(Merchant merchant, Product product)
{
var merchantId = merchant.ID;
// database call needs merchant info...
}