sql-server-2005 – 实体数据模型 – 添加无密钥表

视觉工作室给了我一些错误的痕迹,我已经走到了尽头.我正在尝试将数据库中的现有表添加到我的数据模型中.我知道桌子应该有一把钥匙,但它没有,我无法解决这个问题.重新设计不是我的数据库.

当我第一次尝试添加表时,我收到此错误:

The table/view
‘BT8_GC.dbo.SAVED_QUERY_CATEGORY’ 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.

好的,好的,我将为它定义键并取消注释.这是我取消注释的块,在手动定义键之后(我还必须添加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显示此错误:

Error 11002: Entity Type ‘SAVED_QUERY_CATEGORY’ has no entity set.

好的…取消注释创建了一个新错误.添加实体集后:

<EntitySet Name="SAVED_QUERY_CATEGORY" EntityType="IssueModel.Store.SAVED_QUERY_CATEGORY" store:Type="Tables" Schema="dbo" />

好极了!设计师打开!还没有,因为虽然它出现在商店的Tables / Views文件夹下,但它在模型中没有实体类型.无法从我的代码中调用它.我没有任何错误可以解决,所以我尝试创建实体集映射,但这导致错误“MetadataWorkspace中不存在”.

这就是我所尝试的.如何将这个设计糟糕的表格放入我的数据模型中?

最佳答案 通过修改XML,您只添加了有关数据库表的信息.现在,您必须打开工具箱并在设计器中向模型添加实体.根据需要配置实体以具有属性.然后打开映射详细信息并将新实体映射到您的表.

顺便说一句.一旦手动修改XML描述数据库,就不能再使用数据库中的更新 – VS设计人员将始终删除您的更改,您将不得不再次执行更改.

点赞