10

我在我的 Web 应用程序中使用 EF 4。

这是我的相关表格:

**AppToDomains_V1 **
GroupId   uniqueidentifier
AppGuid   uniqueidentifier

**Apps table**
AppName   nvarchar(50)  
AppGuid   uniqueidentifier  
ClientAppID   nvarchar(50)  
IsDeleted     bit   
CreatedDate   datetime  
UpdatedDate   datetime  

和我的 edmx:

http://ge.tt/17n6R2e/v/0?c

我收到以下错误:

错误 2 错误 3002:从第 1565 行开始映射片段时出现问题:表 AppToDomains_V1 的键(AppToDomains_V1.AppId、AppToDomains_V1.Domain)的潜在运行时违规:列(AppToDomains_V1.AppId、AppToDomains_V1.Domain)映射到 EntitySet AppToDomains_V1 的属性(AppToDomains_V1. AppId、AppToDomains_V1.Domain)在概念方面,但它们不构成 EntitySet 的关键属性(AppToDomains_V1.AppId、AppToDomains_V1.Domain、AppToDomains_V1.IsWhiteListed)。D:\MaM\Server\MamAdmin\Dev\Admin 1.7\MaMDBEntityFramework\MaMModel.edmx 1566 15 MaMDBEntityFramework

我该如何解决这个问题?

D:\MaM\Server\MamAdmin\Dev\Admin

1.7\MaMDBEntityFramework\MaMModel.edmx 1566 15 是:

      <EntitySetMapping Name="AppToDomains_V1">
        <EntityTypeMapping TypeName="MaMDBModel.AppToDomains_V1">
          <MappingFragment StoreEntitySet="AppToDomains_V1">
            <ScalarProperty Name="IsWhiteListed" ColumnName="IsWhiteListed" />
            <ScalarProperty Name="Domain" ColumnName="Domain" />
            <ScalarProperty Name="AppId" ColumnName="AppId" />
          </MappingFragment>
        </EntityTypeMapping>
      </EntitySetMapping>
4

1 回答 1

28

我知道这是很久以前的事了,但它仍然出现在搜索引擎上,所以这就是交易。

3002 错误表明模型和实际数据库在表的主键方面不匹配。例如,数据库可能只有一个 ID 字段作为主键,但在模型中它有两个或多个列标记为主键的一部分。当我遇到此错误时,模型已将所有非空外键字段标记为主键的一部分,这是不正确的。

要解决此问题,请进入模型,找到表,突出显示错误标记为主键一部分的每个字段,并将“实体键”属性更改为 false。重新编译,错误应该消失了。

这对我有用。

于 2016-03-30T19:43:44.293 回答