Теория
EDMX
В случае EDMX вам нужно как минимум два файла SSDL.Один для SQL-сервера и один для SQL Server CE.Причина в том, что файл SSDL описывает базу данных, включая типы баз данных.Некоторые типы в SQL Server CE отличаются.Например, SQL-сервер CE не поддерживает NVARCHAR(max)
, и вы должны использовать NTEXT
.SSDL также содержит информацию о манифесте провайдера, поэтому даже если ваши типы столбцов и имена точно такие же, вам все равно нужно использовать SSDL для отличия манифестов провайдера.
Если ваши таблицы и имена в обеих базах данных будут одинаковыми, вы можете использовать один и тот же MSL(CSDL должен быть таким же).Работать с двумя SSDL гораздо сложнее, потому что это означает либо два EDMX, и некоторую ручную синхронизацию изменений, либо один EDMX и некоторый сценарий, который извлекает второй SSDL или поддерживает полное отображение вручную в файлах XML.Конструктор VS Entity Framework не подготовлен для этого типа использования.
Код вначале
Код вначале обеспечивает гораздо более упрощенную ситуацию, потому что вам не нужно иметь дело сSSDL.SSDL создается автоматически при запуске приложения на основе поставщика, определенного в строке подключения, и отображения, определенного в вашей модели.
Даже первый код может иметь проблемы, когда речь идет о различных типах данных в SQL Server и SQL Server CE.В качестве примера мы можем снова использовать большие строки.
Практика
Теория говорит, что это возможно.Практика говорит, что это может быть намного сложнее.SQL Server и SQL Server CE - это разные серверы баз данных с разными функциями и производительностью.SQL Server предоставляет гораздо больше функций, и некоторые из этих функций вообще не будут работать на SQL Server CE (представления, процедуры sql) (вы упоминали, что у вас уже есть схема для SQL Server) или будут работать намного медленнее.Как только вы соблюдаете эти ограничения, вам придется либо разветвлять разработку для отдельной поддержки на SQL Server и SQL Server CE, либо вам придется идти на компромиссы.