У меня есть такая реализация:
public interface IGenericRepository
{
//...
void Update<T>(T entity, string keyPropertyName = "Id") where T : class;
void Delete<T>(T entity, string keyPropertyName = "Id") where T : class;
//...
}
public abstract class GenericRepositoryBase : IGenericRepository
{
//...
void Update<T>(T entity, string keyPropertyName = "Id") where T : class;
void Delete<T>(T entity, string keyPropertyName = "Id") where T : class;
//..
}
public class GenericRepository : GenericRepositoryBase
{
//..
public override void Update<T>(T entity, string keyPropertyName = "Id")
{
//..
}
public override void Delete<T>(T entity, string keyPropertyName = "Id")
{
//..
}
//..
}
Каждый раз, когда я задаю (жесткое кодирование) keyPropertyName = "Id", это выглядит не очень хорошо.
Может быть, кто-то имеетидея, как я могу объявить значение const string defaultKeyPropertyName = "Id"
только в одном месте, а затем везде просто так использовать.
//...
void Update<T>(T entity, string keyPropertyName = defaultKeyPropertyName) where T : class;
void Delete<T>(T entity, string keyPropertyName = defaultKeyPropertyName) where T : class;
//..
или это можно сделать как-то еще?
есть идеи?