2015-04-02 4 views
6

Я новичок в Dapper. Я пытаюсь создать новый проект и отобразить локальную базу данных Dapper. К сожалению, я всегда получаю эту ошибку:Ошибка Dapper: Не удалось загрузить тип «Dapper.SqlMapper»

Could not load type 'Dapper.SqlMapper' from assembly 'Dapper, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'

я добавил щеголеватый по NuGet (Щеголеватый v 1.39.0.0.). Это пример моего кода:

public static IEnumerable<TBMobileDetails> Allmobilelisting() 
{ 
    SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=""c:\users\database.mdf"";Integrated Security=True"); 

    string query = "select * from Mobiledata"; 
    var result = con.Query<TBMobileDetails>(query); 
    return result; 
} 

Где находится проблема?

+0

1.0.0.0 очень показателен, потому что 1.39.0.0 заклеймен как (неудивительно) 1.39.0.0; это похоже на то, что в вашем проекте есть код * другого * (возможно, косвенная ссылка), ожидающая dapper 1.0; Существуют ли другие DLL, которые вы используете здесь? –

+0

Точно так же: в вашем сборнике «bin/{whatever}» - какая версия файла dapper dll? –

+0

Спасибо, я создаю проект с нуля, и тот же код теперь отлично работает. Я не знаю, что случилось. – Emil

ответ

0

Моя проблема была в том, что произошло столкновение пространства имен. Может быть, немного очевидно, но не назовете что-нибудь «проклятое» в вашем проекте.

0

Эта проблема возникает, как правило, когда есть объект/класс/типа по имени

  • щеголеватого
  • щеголеватого

Выполните следующие шаги, чтобы удалить этот вопрос

  1. Создать Свежий проект и не называть ничего в нем остроумием h Dapper (без учета регистра). Даже если вы измените имя объекта «dapper» в существующем проекте, это тоже может создать проблемы, поэтому лучше создать новый проект! Я думаю, что это как-то связано с сборкой или hardcoding где-то в dapper или visual studio (не уверен!).
  2. Используйте Nuget Manager снова, чтобы установить Dapper.
  3. Теперь он должен хорошо работать.