2012-04-02 79 views
0

运行数据库第一个项目时出现映射错误。我知道我应该修复它们的位置,但是由于我已经完成了数据库并且我无法弄清楚如何修复它,这已经有一段时间了。我似乎改变的东西越多,错误越多。C#ASP.NET EF数据库优先:类型未映射

欢迎任何关于这些映射问题或解决方案的教程,指南或博客文章的链接。我无法通过Google找到任何解释我应该改变的内容。

类型'Paycento_Models.Domain.Campaign'未映射。使用忽略方法 或NotMappedAttribute数据注释来检查 类型是否未被明确排除。验证类型是 定义为一个类,不是原始的,嵌套的或通用的,并且不会从EntityObject继承 。

描述:在执行 当前Web请求期间发生未处理的异常。请查看堆栈跟踪以获取有关该错误的更多信息以及源代码的位置。

异常详细信息:System.InvalidOperationException:类型 'Paycento_Models.Domain.Campaign'未映射。检查使用Ignore方法或 NotMappedAttribute数据注释未明确排除类型 。验证类型是否定义为 作为类,不是原始的,嵌套的或通用的,并且不从EntityObject继承 。

enter image description here


enter image description here

+0

你在EDMX文件(从数据库更新)中做了更新吗?你也可以张贴竞选的映射,而不是页面? – daryal 2012-04-02 08:31:17

+0

@daryal,它不是从数据库生成的,我从一个书面的ERD开始。 *在Campaign映射中添加屏幕快照 – Reinard 2012-04-02 08:36:41

+0

在页面映射Campaign_Id未映射的情况下,应将其映射到相关列。 – daryal 2012-04-02 08:39:55

回答

0

这个问题是因为你的模式是不知道的数据库更改。为了解决此问题,请右键单击您的模型并选择从数据库更新。不知何故,你的模型在xml中没有正确的存储模型。

+0

我没有数据库,我在纸上复制到VS. – Reinard 2012-04-02 09:30:15

+0

我不认为只是在纸上复制ERD就足够了。 edmx文件使用存储,概念和映射相关的XML元素。只需使用xml编辑器打开打开的edmx文件并进行调查即可。据我所知,如果你没有首先使用代码,EF没有定义任何数据库就不能直接工作。在edmx xml中,可能有些存储节点不存在,因此未定义某些映射。这是你问题的根源。与EF没有直接关系。 – daryal 2012-04-02 10:16:57