Мне нужно выполнить запросы только для чтения в отношении базы данных, которую я не контролирую. Мой лучший выбор - Linq to SQL, однако имена столбцов немного отличаются между нашими средами Dev, QA и Production.Как выполнить запросы LINQ к базе данных с различной схемой?
Например, возьмите колонку FolderName
. Мы могли бы иметь:
Dev: u34_FolderName
QA: u74_FolderName
PROD: u56_FolderName
Я хочу сделать запросы как это:
var query = from c in DepartmentReviews
where c.FolderName == "Test"
Могу ли я использовать Entity Framework, чтобы решить эту проблему?
Какое потенциальное решение выглядит? 3 сборки, 1 для каждой моей среды? Могу ли я создавать общие интерфейсы или базовые классы для каждого из них и кода для них?
ИМО вы должны найти человека, который решил настроить БД таким образом и избить его полностью. – juharr
juharr, это имеет смысл. Очень возможно построить 234 в производстве, 250 все еще в qa и 300 в dev. Имена столбцов просто гарантируют, что вы связываетесь с правой таблицей, которая, если вы думаете об этом, пытается -prevent- то, что пытается сделать @Owen (запрос одного размера для всех). Конечно, его читают только, но философия, применимая к правам, также должна применяться к чтению в этом случае. – corsiKa
Схемы управляются третьей стороной значительной сложности. Я бы попытался победить это в подчинении, но он не чувствует боли. Вся причина этого упражнения заключается в том, чтобы обойти некоторые ограничения API, которые он предоставляет. –