ADO.NET实体框架:更新向导将不添加表将不、向导、实体、框架

2023-09-02 02:07:43 作者:﹎° 心无城府

我加了新的ADO.Net实体数据模型的到我的项目并使用的更新向导来添加表到模型。五选定的表添加到设计图面。另外两个表将不会增加。我在向导中选择它们并单击完成,然而却从来不显示在设计图面。

I added a new ADO.Net Entity Data Model into my project and used the Update Wizard to add tables into the model. Five of the selected tables were added to the design surface. Two other tables will not add. I select them in the wizard and click Finish, yet they never show up on the design surface.

这是一个错误,还是有一些情况下,一个表不能添加到模型(设计)?

Is this a bug, or are there some situations where a table cannot be added to the model (by design)?

更新:XML(*的.edmx)揭示了问题。

UPDATE: The XML (*.edmx) reveals the problem.

<!--Errors Found During Generation:
warning 6013: The table/view 'FooBar.dbo.Roles' does not 
have a primary key defined and no valid primary key could be inferred. 
This table/view has been excluded. To use the entity you will need to 
review your schema, add the correct keys and uncomment it.-->
<!--<EntityType Name="Roles">
    <Property Name="role_id" Type="decimal" />
    <Property Name="role_desc" Type="nvarchar" MaxLength="30" />
</EntityType>-->

感谢克雷格您的答复。

推荐答案

设计图面是从实体模型不同。有可能有一个表中的映射在EDMX不出现在设计表面。查看该文件为XML,看是否是这种情况。在这种情况下,升级向导将不允许重新添加表,因为他们已经实体模型的一部分​​。所以,一般来讲,​​更新向导更了解比它有关的设计图面的实体模型的本身的。

The design surface is different from the entity model. It is possible to have a table in the mapping in your EDMX which does not appear on the design surface. View the file as XML to see if this is the case. In this case, the Update Wizard will not allow you to re-add the tables, since they are already part of the entity model. So, generally speaking, the Update Wizard knows more about your entity model than it does about the design surface, per se.

我不认为这正是你的状况,但它应该给你的解决方案的总体思路:进入XML和查找问题引用的表

I don't think that's exactly the situation you're in, but it should give you the general idea for the solution: go into the XML and look for references to the tables in question.