Kye*_*ica 5 sql-server-2005 entity-framework-4 asp.net-mvc-3
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>
Run Code Online (Sandbox Code Playgroud)
不,现在设计器不会打开。返回文件,Intellisense 显示此错误:
错误 11002:实体类型“SAVED_QUERY_CATEGORY”没有实体集。
好的...取消注释创建了一个新错误。添加实体集后:
<EntitySet Name="SAVED_QUERY_CATEGORY" EntityType="IssueModel.Store.SAVED_QUERY_CATEGORY" store:Type="Tables" Schema="dbo" />
Run Code Online (Sandbox Code Playgroud)
好极了!设计师开门!仍然没有,因为虽然它显示在商店的 Tables/Views 文件夹下,但它在模型中没有实体类型。无法从我的代码中调用它。我没有任何错误可以解决,所以我尝试创建一个实体集映射,但这导致错误“MetadataWorkspace 中不存在”。
所以这就是我所尝试的。如何将这个设计不佳的表放入我的数据模型中?
通过修改 XML,您仅添加了有关数据库表的信息。现在您必须打开工具箱并将实体添加到设计器中的模型中。根据需要配置实体以具有属性。然后打开映射详细信息并将新实体映射到您的表。
顺便提一句。一旦你手动修改描述数据库的 XML,你就不能再使用数据库更新 - VS 设计器将始终删除你的更改,你将不得不再次执行它们。
| 归档时间: |
|
| 查看次数: |
2711 次 |
| 最近记录: |