2012-03-26 32 views
0

我是MVC 3的新手,我试图做的是创建一个带有现有数据库的CRUD界面。我不断收到错误ASP.net MVC 3 EntityType'PaMap'没有定义键

One or more validation errors were detected during model generation: 

\tSystem.Data.Entity.Edm.EdmEntityType: : EntityType 'PaMap' has no key defined. Define the key for this EntityType. 
\tSystem.Data.Entity.Edm.EdmEntitySet: EntityType: EntitySet 'PaMaps' is based on type 'PaMap' that has no keys defined. 

我正在使用的数据库有三个字段。 PA_ID是我在MS SQL SERVER中定义的主键,并多次刷新以确保它实际上已被定义。在阅读了关于有时MVC不开心的除外,我还添加了_ID部分,除非您的主键在名称中包含ID。在此之后,我保存并刷新,但仍然没有运气。类别和名称是表格中的另外两列。我使用的是代码优先的方法,所以我在PaMap类中实例化了我的getters和setter。我也尝试使用[key]方法设置PaMap类中的主键。我得到的是另一个错误

“无效的对象名'dbo.PaMaps'”。

我搜索了这个错误的答案,以及所有我能找到的是做一个搜索和替换为DBO,我这样做,而且只有一个点的地方使用DBO但一旦我删除DBO方案将不再运行。

现在我会很高兴,如果我可以从数据库中获取某些内容,但是此刻MVC对我的脸说谎关于主键未定义。

任何人都可以帮助我可以告诉你代码是否有助于更快地诊断问题?我几乎无处不在寻找这个问题的答案,但没有运气。谢谢你的帮助!

+0

您的web.config对于数据库连接有什么作用?您是使用SQL Server Compact Edition还是其他版本的SQL Server? – 2012-03-27 12:19:06

+0

我正在使用Microsoft SQL Server R2 2008,感谢您的回复我将通过这些示例工作,并在今天晚些时候再次发帖 – Goldentp 2012-03-27 15:13:47

+0

我试过那个演练,你告诉我关于Jennifer不幸,它不适合我,不是因为我搞砸了或者因为我正在使用MS SQL Server 2008.我确实设法在http://msdn.microsoft.com/en-us/data/gg685489上找到另一个教程。这实际上与我的MS SQL Server 2008数据库一起工作,以从数据库列表形式显示数据,现在我只需要弄清楚如何编辑和删除!再次感谢你的帮助! – Goldentp 2012-03-27 20:22:52

回答

1

我已经找到了与SQL Server精简版设置MVC3代码第一次最好的例子是演练2浏览:

http://weblogs.asp.net/scottgu/archive/2011/01/11/vs-2010-sp1-and-sql-ce.aspx

,并在这里建立了数据迁移,这个帖子:

http://blogs.msdn.com/b/adonet/archive/2012/02/09/ef-4-3-code-based-migrations-walkthrough.aspx

这些与不同版本的产品。在斯科特谷的演练2(上述顶部链接),则跳过步骤2中,因为这是现在的EntityFramework的一部分写入,它在所有MVC 3项目中被引用。当您进入步骤7时,根据您拥有的SQL Server Compact Edition的版本,您可能没有Edm Metadata表。如果您的版本具有Migrations表,则不要只删除Migrations表。你需要它。这是迁移(上面的第二个链接)部分的地方。

这些都是我在学习这个时能找到的最好的例子,所以我希望这有助于。