Я в основном плохо разбираюсь в уровнях доступа к данным. Я рассматриваю это как скучную и бессмысленную работу. Я предполагаю среду разработки, где я могу просто создать свои объекты/модели и начать создавать приложение. Время, необходимое для написания DAL, процедур и т. Д., Просто поглощает мой энтузиазм в отношении проекта.Автоматический уровень доступа к данным
То, что я хочу, это общий интерфейс хранилища для моих данных. Что-то вроде:
public interface IRepository
{
//Get individual TEntity item by id
TEntity GetItem<TIdentifier, TEntity>(TIdentifier id);
//Get individual TEntity item by the expression
TEntity GetItem<TIdentifier, TEntity, TArg>(Expression<Func<TArg, TEntity>> expression);
//Get individual TEntity item by the expression
TEntity GetItem<TIdentifier, TEntity, TArg1, TArg2>(Expression<Func<TArg1, TArg2, TEntity>> expression);
//Get all TEntity items
IList<TEntity> GetList<TEntity>();
//Get all TEntity items, filtered by the expression
IList<TEntity> GetList<TEntity, TArg>(Expression<Func<TArg, IList<TEntity>>> expression);
//Get all TEntity items, filtered by the expression
IList<TEntity> GetList<TEntity, TArg1, TArg2>(Expression<Func<TArg1, TArg2, IList<TEntity>>> expression);
TIdentifier CreateItem...
bool UpdateItem...
bool DeleteItem...
}
Я специально заинтересован в чем-то, что будет работать для
- Azure Services Data
- SQL Server
- SQLITE
... но теория применима к любому хранилищу данных
Может кто-нибудь встретить готовое решение или я должен решить проблему, написав больше слоев доступа к данным, чем когда-либо хотел встряхнуть палку.
Примечание: Я знаю о ORM-х, я хочу что-то, что снимает требование, чтобы написать какой-либо из DAL или сохраненных проки.
Не надо ли мне писать прозы для всех моих сущностей? – grenade
Нет, вам не нужно писать хранимые procs, вы можете писать инструкции LINQ. Итак, весь ваш код находится на C#. – mkchandler
Если ваша догма программирования заключается в написании хранимых процедур, то да, вам придется их написать. Я успешно реализую модели Web Forms с использованием LinqToSql в качестве своего ORM без хранимых процедур. – JustLoren