Как решить следующую MappingException - PullRequest
6 голосов
/ 30 марта 2011

Я получаю следующее исключение:

Количество членов в концептуальном типе «MyModel.Customer» не совпадает с количеством членов на стороне объекта типа «MyNamespace.Customer».».Убедитесь, что количество членов одинаково.

В следующем коде:

public CusomserService
{
    // ...

    public IEnumerable<Customer> GetCustomers()
    {
        return new Repository<Customer>().All(); 
    }
}

public class Repository<T>() where T : EntityObject
{
    // ...

    public IQueryable<T> All()
    {
        return _context.CreateObjectSet<T>().AsQueryable<T>(); /* HERE THE EXCEPTION IS THROWN */
    }
}

Репозиторий generics работал нормально, пока я не сделал некоторые изменения в моей модели EF.Я разрешаю EF создать базу данных (с помощью опции Создать базу данных из модели ).

С чего начать?


РЕДАКТИРОВАТЬ: Я решил это.

Проблема не имеет ничего общего с EF или моей моделью.Я переименовал проект слоя данных (и его имя сборки) из original_name.dll в new_name.dll.Я обновил ссылку на проект уровня сервиса на проект уровня данных, но старая сборка (original_name.dll) все еще находилась в каталоге bin.Удаление старой сборки из каталога bin уровня службы и повторное построение решения решило проблему.

1 Ответ

9 голосов
/ 30 марта 2011

Кажется, что классы "MyModel.Customer" не совпадают друг с другом "MyNamespace.Customer".

Попробуйте щелкнуть правой кнопкой мыши по файлу edmx и выбрать Run Custom Tool

или щелкните правой кнопкой мыши на edmx в обозревателе решений, откройте с помощью xml и проверьте свои последние изменения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...