【发布时间】:2015-01-21 15:57:11
【问题描述】:
我有一个 WCF 项目引用另一个具有实体框架 5 EDMX 的 DAL 项目。
我无法检索我的服务的元数据:http://localhost:12034/DataService.svc/$metadata
它返回以下错误:
发现一个未通过验证的 IEdmModel 实例。报告了以下错误: TypeMismatchRelationshipConstraint :引用约束的依赖角色中所有属性的类型必须与主体角色中对应的属性类型相同。实体“PScopeModel.Resource”上的属性“TenantID”类型与引用约束“Fred”中实体“ResourceType”上的属性“ResourceTypeID”类型不匹配。
TypeMismatchRelationshipConstraint :引用约束的依赖角色中所有属性的类型必须与主体角色中对应的属性类型相同。实体“PScopeModel.Resource”上的属性“ResourceType”的类型与引用约束“Fred”中实体“ResourceType”上的属性“TenantID”的类型不匹配。
TypeMismatchRelationshipConstraint :引用约束的依赖角色中所有属性的类型必须与主体角色中对应的属性类型相同。实体“PScopeModel.Resource”上的属性“TenantID”的类型与类型不匹配...
我基本上有以下关系
ResourceType 表在 TenantID + ResourceTypeID 上有 PK 资源表在 TenantID + ResourceID 上有 PK,在 ResourceType 上有 FK。
这似乎影响了我框架上的所有 FK,因为如果我删除当前受影响的关系,它将发生在另一个关系上。
个别实体显示正确:http://localhost:12034/DataService.svc/ResourceTypes
【问题讨论】:
-
检查您的客户端配置并检查 ServiceModel。很可能存在与 WCF 服务发送的不同的 customBinding。
-
@Mez,您认为这与配置有关吗?调用localhost:12034/DataService.svc/?wsdl 工作正常。 `
` ` `` ` `
标签: c# entity-framework visual-studio-2012 odata wcf-data-services