LINQ2SQL с MS SQL Server Compact 3.5 с пакетом обновления 2 (SP2): BadImageFormatException - PullRequest
0 голосов
/ 10 февраля 2012

У меня проблемы с использованием файла базы данных .sdf с Ling2SQL. Я работаю с VS2010 на .NET 3.5. Что я сделал до сих пор:

  1. Создан файл sdf и добавлены таблицы и данные (расположены в папке проекта)
  2. Скопировал SQLMetal.exe и SqlMetal.exe.config в папку проекта и вызвал его с помощью:

    SQLMetal.exe database.sdf /dbml:DataOffline.dbml /namespace:CTcalc /pluralize
    
  3. Добавлен файл dbml в проект (создан designer.cs)

  4. Добавить новый метод в designer.cs

    public DataOfflineDataContext() : 
            base(global::CTcalc.Properties.Settings.Default.databaseOfflineConnectionString, mappingSource)
    {
        OnCreated();
    }
    
  5. Добавить connectionString в файл настроек (тип: connectionString)

    Data Source=|DataDirectory|\database.sdf
    
  6. Использование соединения:

    using (DataOfflineDataContext dc = new DataOfflineDataContext())
                lProtFunc = (from c in dc.ProtectionFunctions select c).ToList();
    

При отладке моего проекта я получаю ошибку BadImageFormatException с HRESULT: 0x8007000B

Понятия не имею, как это исправить. Любая помощь?

Ответы [ 2 ]

0 голосов
/ 15 февраля 2012

Моя ошибка заключалась в использовании неверного .dll в моем проекте.

Я использовал

Program Files\Microsoft SQL Server Compact Edition\v3.5\Desktop\System.Data.SqlServerCe.dll

вместо

Program Files\Microsoft SQL Server Compact Edition\v3.5\Private\System.Data.SqlServerCe.dll

Теперь это работает!

0 голосов
/ 10 февраля 2012

В системе x64 необходимо установить среды выполнения x86 и x64 - http://www.microsoft.com/download/en/details.aspx?id=5783

...