ERP-решение для клиентов имеет (imho) действительно ужасную структуру базы данных.Он не использует выразительные имена ни для таблиц, ни для столбцов.Например, таблица адресов выглядит следующим образом:
C001_T001
=========
T001_ID
T001_F001
T001_F002
T001_F003
[...]
- T001_ID является первичным ключом
- T001_F001 хранит заголовок
- T001_F002 хранит фамилию
- T001_F003 хранит имя кулака
- T001_F003 хранит адрес электронной почты
- ... вы получаете точку
База данных предоставляет OData-Feed,который я могу использовать для выполнения операций с базой данных.
Моя идея состоит в том, чтобы создать вокруг него своего рода оболочку.Так что запрос к базе данных будет немного более выразительным, увлекательным и, в конечном итоге, более продуктивным.
// Not cool
ctx.C001_T001s.Where(x => x.T001_F002 == "Smith" && x.T001_F003 == "John")
// Cool!
Addresses.Where(x => x.LastName == "Smith" && x.FirstName == "John")
Каковы возможные подходы для достижения этой цели?