如何解决以下MappingException

时间:2011-03-30 00:33:00

标签: c# entity-framework

我遇到以下异常:

  

中的成员数量   概念类型'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创建数据库(通过从Model 选项生成数据库)。

我从哪里开始?


编辑:我已经解决了。

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

1 个答案:

答案 0 :(得分:9)

似乎Classes'MyModel.Customer'彼此不匹配'MyNamespace.Customer'。

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

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