ADO.NETentity framework:更新向导将不会添加表
我将一个新的ADO.Net实体数据模型添加到我的项目中,并使用更新向导将表添加到模型中。 五个选定的表格被添加到devise表面。 两个其他表不会添加。 我在向导中select它们,然后单击“完成”,但它们从不在devise图面上显示出来。
这是一个错误,还是有一些情况下表不能添加到模型(按devise)?
更新:XML(* .edmx)显示问题。
<!--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>-->
感谢克雷格你的回应。
devise表面与实体模型不同。 EDMX中的映射表中可能没有出现在devise图面上。 以XML格式查看文件,看看是否属于这种情况。 在这种情况下,更新向导将不允许您重新添加表,因为它们已经是实体模型的一部分。 因此,一般来说,更新向导对本体模型的了解多于对本体的devise图面的了解。
我不认为这正是你所处的情况,但它应该给你解决scheme的总体思路:进入XML并寻找有关表的引用。
将主键设置为全部表,或者对每个表的任何列只设置一个未选中的checkbox“允许为空”。 这个对我有用 :)
1.更改表结构并添加主列。 更新模型。
2.修改XML编辑器中的.EDMX文件,并尝试为该特定表格添加标签下的新build列。 (不pipe用)
3.除了创build一个新的主要列到退出表,我将通过涉及所有现有的列来创build一个组合键。(WORKED)
entity framework:添加没有主键的数据表到实体模型。
我也有这个问题,以上都不适合我。 帮助我的是以下几点。
当您尝试与数据库连接时,数据库可以使用不同凭据的不同用户可以接受。 让我们说用户A到D.
如果尝试与用户连接,请确保用户启用了正确的凭据,在这种情况下,启用读取和写入选项。
为此,请启动MS SQL Server Managment Studio,连接到您的SQL Server并select您尝试在Visual Studio中build立连接的数据库。 在'your_dbname' – >安全 – >用户下find用户列表。 右键单击您尝试login的用户名,然后select属性。 一个窗口打开。 select“常规”(默认select)页面,在“数据库angular色成员资格”选项卡下, 确保select了“db_datareader”和“db_datawrite”。
注意:当你login时,MS SQL Server Managment Studio确保你login的用户可以启用/禁用这些选项…
检查你的特定表中的“空”。 如果所有的列都设置为“允许空”,则entity framework将其视为“空”表。 我有同样的问题,并没有选中“允许空”,它添加了所需的表。
我的解决scheme是删除整个模型,并读取它,包括我想要的新表。
我一次意外地删除了一个devise师的桌子,无法读取它。 因此删除整个模型并读取它。
我也遇到了一些问题( Ado.Net实体数据模型没有正确更新 )
这已在最新版本(环境:VS 2012,.net框架4.5)中得到解决。 简单打开.edmx文件并添加所需的表/存储过程/视图。 不具有主键的表/视图将被创build为只读表/视图。
表/视图“TABLE_NAME”没有定义主键。 关键是已经被推断出来,定义被创build为只读表/视图。
您不需要删除整个模型(可能是数百个表格!)。
向导可以处理“添加新的”项目,但是一些改变,如改变组合键和重命名列 – 它不知道该怎么做 – 所以它不会尝试 – 和事情不同步。
SO:从模型(概念模式)和Model.Store中删除有问题的表格,然后使用向导更新模型,然后重新添加有问题的表格。
只是抛出一些以前没有这样做的人的更多细节。 我正在使用安装了更新4的Visual Studio 2013。 我添加了一些字段到表中,从我的模型中删除表,然后去更新,它不会让我检查任何表。
我有一个主键。
我创build了一个新的testing表,显示出来,它会让我检查,但不是我的原始。
我以前从来没有用XML打开它,也不知道该怎么做。 您右键点击.edmx文件并“打开” – selectxml编辑器。
有问题的桌子在那里,还有新的领域(奇怪)。
我删除了所有的引用(花了几次) – 删除之后,保存,如果你打开它,它不会显示只是继续,select“查看XML” – 看看这些错误,基本上按照弹跳球,直到你清理它。
希望额外的细节有助于某人。
乔
我发现的一个简单的方法是(在SQL Server Management Studio中)添加一个INTtypes的ID列,取消select“允许空”,并在列属性(ID)>>标识规范>>检查(是身份),并使确定增量已设置。
完成上述操作后,返回到.edmx窗口,右键单击并从数据库更新模型。