SQL Server CE 4.0 с SQLmetal

Я создал небольшой тестовый проект в WebMatrix, который использует SQL Server CE 4.0. Не будучи фанатом использования встроенного SQL, я хотел создать несколько классов домена LINQ2SQL для базы данных SQL Server CE 4.0, созданной WebMatrix. К сожалению, SQLmetal жалуется, что файл базы данных поврежден или несовместим.

Есть ли версия SQLmetal.exe который совместим с SQL Server CE 4.0 и может ли он быть загружен независимо от Visual Studio?

Заранее спасибо.

3 ответа

Решение

Sql metal не работает с sqlce 4.0 (я пробовал), вы должны использовать linq2entity или кодировать объект данных и POCOS вручную. Или, возможно, дождаться следующей версии визуальной студии. Я надеюсь, что Microsoft все еще будет поддерживать linq2sql для sqlce4.0, так как с ним легко работать.

<system.data>
    <DbProviderFactories>
        <remove invariant="System.Data.SqlServerCe.3.5" />
        <add name="Microsoft SQL Server Compact Data Provider 4.0" 
             invariant="System.Data.SqlServerCe.3.5" 
             description=".NET Framework Data Provider for Microsoft SQL Server Compact" 
             type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    </DbProviderFactories>
</system.data>

Все еще работает, вам нужен этот простой взлом:

  1. найти SqlMetal.exe путь к исполняемому файлу (из VS cmd: где SQlMetal)
  2. редактировать SqlMetal.exe.config, добавьте или обновите раздел "system.data" в разделе "конфигурация", переопределив SQL Server CE DataProvider 3.5 с 4.0:

Тем не менее, проблема с Windows 8 и Visual Studio 2012, так как SSCE 3.5 не установлена ​​по умолчанию в Windows 8.

Другие вопросы по тегам