我正在开发一个自定义的ado.net提供程序并使用该提供程序我在Visual Studio 2010中集成了实体框架支持。我正在创建所有可能的映射并从数据库中读取表对象的所有相关元数据。对于我的测试,表包含主键和其他字段。当我使用这个表从数据库创建一个模型时,我得到一个包含所有列映射的模型,但我也收到了以下错误消息:
生成的模型带有警告或错误。 有关详细信息,请参阅错误列表。在运行应用程序之前必须解决这些问题。 从数据库加载元数据花了00:00:11.4799371。 生成模型花了00:00:04.2751189。 添加了连接字符串到App.Config文件。 编写.edmx文件时间为00:00:00.0005060。
如果我使用XML编辑器打开.edmx文件,我会看到以下错误:
<!--Errors Found During Generation:
warning 6002: The table/view 'sqlfire.APP.CUSTOMERS' does not have a primary key defined. The key has been inferred and the definition was created as a read-only table/view.
-->
它还为表添加了一个带有SELECT ...语句的DefiningQuery。
我要围成一圈寻找解决方案并拼命寻求这方面的帮助。
答案 0 :(得分:9)
从错误消息中看来,您的某个表/视图中没有主键。 EF
需要在每个表中使用主键才能生成实体密钥。
您仍然可以运行您的应用程序,但我强烈建议您按警告添加主键。