我收到以下异常:



在以下代码中:

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 */
    }
}

在我对 EF 模型进行一些更改之前,泛型存储库工作正常。我让 EF 创建数据库(通过从模型选项生成数据库)。

我从哪里开始?

编辑: 我已经解决了。

问题与 EF 或我的模型无关。我已将数据层项目(及其程序集名称)从 original_name.dll 重命名为 new_name.dll。我已经更新了对数据层项目的服务层项目引用,但旧的程序集(original_name.dll)仍在 bin 目录中。从服务层的bin目录中删除旧的程序集并重建解决方案解决了问题。

最佳答案

似乎类“MyModel.Customer”与“MyNamespace.Customer”不匹配。

尝试右键单击 edmx 文件并选择运行自定义工具

或右键单击解决方案资源管理器中的 edmx 并使用 xml 打开并验证您最近的更改。

关于c# - 如何解决以下MappingException,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5480593/

10-16 08:57