У меня есть новый проект, который требует от меня подключения к Oracle 9i.Я хочу использовать шаблон репозитория (в котором я новичок) для организации своего кода.Я буду использовать некоторые хранимые процедуры для некоторых запросов.
Я хочу написать свой код таким образом, чтобы не было дублирования, а также следовал рекомендациям.
Пожалуйста, проверьте мой код ниже и дайте мне знать, правильно ли я делаю.У меня такое чувство, что я нет.
Я пытался читать другие сообщения на ту же тему, но безуспешно.
public interface IDeliveryRepository : IDisposable
{
IEnumerable<Delivery> GetDeliveries();
Task GetDelivery(int id);
void Insert(Delivery delivery);
void Delete(Delivery delivery);
void Update(Delivery delivery);
}
Репозиторий:
public class DeliveryRepository: IDeliveryRepository
{
public Delivery GetDelivery(int id)
{
Delivery delivery = null;
var sql = "SELECT d.id , o.owner_id, o.name FROM delivery d JOIN owner o on o.id = d.owner_id where id = :t";
using (var con = new OracleConnection(AppConfig.CALL_CENTER_CONNECTION_STRING))
{
con.Open();
using (var cmd = new OracleCommand(sql, con))
{
cmd.BindByName = true;
cmd.Parameters.Add("t", id);
using (var oraReader = cmd.ExecuteReader())
{
while (oraReader.Read())
{
delivery = new Delivery
{
Id = oraReader.GetString(oraReader.GetOrdinal("id")),
Owner = new Owner
{
Id = oraReader.GetString(oraReader.GetOrdinal("owner_id")),
Name = oraReader.GetString(oraReader.GetOrdinal("name"))
}
};
}
}
}
}
return delivery;
}
.,,,.