Visual Studio正在给我一些错误的痕迹,我已经走到了尽头。我正在尝试将数据库中的现有表添加到我的数据模型中。我知道桌子应该有一把钥匙,但它没有,我无法解决这个问题。重新设计不是我的数据库。
当我第一次尝试添加表时,我收到此错误:
表/视图 'BT8_GC.dbo.SAVED_QUERY_CATEGORY'确实如此 没有定义主键,没有 可以推断出有效的主键。 此表/视图已被排除。至 使用实体,您将需要 检查您的架构,添加正确的 键,并取消注释。
好的,我会定义它的键并取消注释。这是我取消注释的块,在手动定义键之后(我还必须添加nullable = false部分):
<EntityType Name="SAVED_QUERY_CATEGORY">
<Key>
<PropertyRef Name="SQC_CAT_ID"/>
<PropertyRef Name="SQC_USER_ID"/>
</Key>
<Property Name="SQC_CAT_ID" Type="int" Nullable="false" />
<Property Name="SQC_USER_ID" Type="int" Nullable="false" />
<Property Name="SQC_CAT_DSCR" Type="varchar" MaxLength="50" />
<Property Name="SQC_SEQ_NO" Type="int" />
</EntityType>
不,现在设计师不会打开。返回文件,Intellisense显示此错误:
错误11002:实体类型'SAVED_QUERY_CATEGORY'没有设置实体。
好的......取消注释会产生新的错误。添加实体集后:
<EntitySet Name="SAVED_QUERY_CATEGORY" EntityType="IssueModel.Store.SAVED_QUERY_CATEGORY" store:Type="Tables" Schema="dbo" />
耶!设计师打开!还没有,因为虽然它出现在商店的Tables / Views文件夹下,但它在模型中没有实体类型。无法从我的代码中调用它。我没有任何错误可以解决,所以我尝试创建实体集映射,但这导致错误“MetadataWorkspace中不存在”。
这就是我所尝试过的。如何将这个设计糟糕的表格放入我的数据模型中?
答案 0 :(得分:2)
通过修改XML,您只添加了有关数据库表的信息。现在,您必须打开工具箱并在设计器中向模型添加实体。根据需要配置实体以具有属性。然后打开映射详细信息并将新实体映射到您的表。
顺便说一下。一旦手动修改了描述数据库的XML,就不能再使用数据库中的更新 - VS设计人员将始终删除您的更改,您将不得不再次执行更改。