我在VS2008中遇到了Entity Framework的一个不寻常的问题。问题是当我从现有数据库创建实体模型时,设计器添加了所有相应的表,但它似乎随机省略了我的一些外键字段。然而,如果我在浏览器中浏览模型,我可以清楚地看到字段已包含在内。
在构建过程中,我开始收到多个错误,这些字段未映射,这一点变得很明显。这使我手动将设计器中的字段添加到相应的表中,并将它们映射到数据源。
然而,在此之后,我得到了多个错误: 错误102错误10023:找不到要验证的概念模型 错误103错误10024:找不到要验证的存储模型 错误104错误10025:找不到要验证的映射模型 错误105无法找到要嵌入为输入文件资源的Conceptual Schema节点 错误106无法找到要作为输入文件的资源嵌入的存储架构节点 错误107无法找到要作为输入文件
的资源嵌入的Mapping节点当我在XML编辑器中打开edmx文件时,文件中充满了波浪线。
我已成功在VS2010中创建了实体模型而没有问题,但我们的客户端不在4.0 Framework。
我发现其他人遇到了这个问题,但我找不到任何资源来帮助解决问题。
任何建议都将不胜感激。
答案 0 :(得分:1)
这可能是EF1不支持外键。因此,对于外键列,EF将创建导航属性,但不会在实体上创建外键属性。您可以在模型浏览器中找到外部属性,但这是在表示数据库而不是概念模型的模型中。请注意,导航属性是基于商店中的外键建模的,即使您没有暴露外键,也不会丢失关系功能。换句话说 - 如果在查询中使用导航属性,它们将被正确转换为在SQL查询中使用外键值。在概念模型中具有外键属性非常有用的一件事是,当您想要推理或修改关系而不必加载相关实体时 - 如果您知道键值,则只需将外键属性设置为此值,你完成了它。这在EF1中是不可能的 - 每当您需要更改关系或查询相关实体时,您首先需要加载所述实体并使用导航属性。