我刚刚升级到.net 4.5在我的WCF客户端项目中更新了我的OData服务参考,我得到了这个自定义工具错误:
指定的架构无效。错误:(0,0):错误0111 ::依赖角色Bill引用的属性必须是EntityType BillingEntities.Bill的键的子集,由关系BillingEntities.FK_Bill_Batch_BatchId的引用约束中的Dependent Role引用。
关于如何解决这个问题的任何想法?
答案 0 :(得分:1)
我很确定这是WCF数据服务的问题,而不是实体框架。我在我的环境中重现了这个。我发现EDMX CSDL名称空间在版本之间是不同的。
2.0 EDMX designer xmlns:edmx =“http://schemas.microsoft.com/ado/2008/10/edmx” WCF服务$ metadata - xmlns =“http://schemas.microsoft.com/ado/2008/09/edm”
3.0 EDMX designer - xmlns:edmx =“http://schemas.microsoft.com/ado/2009/11/edmx” WCF服务$ metadata - xmlns =“http://schemas.microsoft.com/ado/2007/05/edm”
正如您所看到的,3.0定义了比2.0更新的edm版本,但是由WCF Data Services作为2007年降级版本发布。
我的结论是,GAC for 4.5中附带的System.Data.Services.dll存在支持此问题的问题。由于WCF数据服务从4.5开始分离到NuGet,我将切换到此版本。我在我的环境中尝试了这个,并且该服务发布的CSDL是正确的,并且可以由我的服务客户使用。
如果你无法升级,你将不得不在4.0中使用EDMX设计器或手动在幕后切换这些标签,这就是我最初的工作方式。
答案 1 :(得分:0)