C# 基于EF模型在WCF数据服务项目中创建具有多个链接的条目
我正在尝试创建一个WCF数据服务,该服务公开一个由实体框架模型表示的数据库,并在针对具有多个1-*继承的表运行HTTP POST请求时遇到问题 实体框架表如下所示: 大多数具有一个父实体的表都可以通过POST到父URI(即“”)进行访问。我遇到的问题是,由于多重继承,我无法使用此方法。我可以允许一个FK为空,并使用单独的PUT操作进行更新,但这只是一个糟糕的代码 我正在使用JSON创建HTTP请求。这是我一直在尝试的一个例子C# 基于EF模型在WCF数据服务项目中创建具有多个链接的条目,c#,entity-framework,post,wcf-data-services,C#,Entity Framework,Post,Wcf Data Services,我正在尝试创建一个WCF数据服务,该服务公开一个由实体框架模型表示的数据库,并在针对具有多个1-*继承的表运行HTTP POST请求时遇到问题 实体框架表如下所示: 大多数具有一个父实体的表都可以通过POST到父URI(即“”)进行访问。我遇到的问题是,由于多重继承,我无法使用此方法。我可以允许一个FK为空,并使用单独的PUT操作进行更新,但这只是一个糟糕的代码 我正在使用JSON创建HTTP请求。这是我一直在尝试的一个例子 POST http://url/data.svc/Order_Ite
POST http://url/data.svc/Order_Item HTTP/1.1
User-Agent: Fiddler
Accept: application/json
Content-Type: application/json
{"Count": 2, "Item": {"uri": "http://url/data.svc/Items(ID)"}, "Order": {"uri": "http://url/data.svc/Order(ID)"}}
InitializeService方法如下所示:
public static void InitializeService(DataServiceConfiguration config)
{
config.SetEntitySetAccessRule("*", EntitySetRights.All);
config.SetServiceOperationAccessRule("MyServiceOperation", ServiceOperationRights.All);
config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2;
}
我知道这可能很简单,但有人能帮我弄清楚发布链接实体的语法吗?提前感谢您您应该能够使用批处理请求来完成此操作,该批处理请求由一个发布新OrderItem的请求和一个更新指向其他实体的链接的请求组成。它应该与下面的类似 [Uri]/$batch [1] POST[Uri]/订单(1)/订单项目 [2] POST[Uri]/Item(1)/Order\u Item/$link 看来你在用小提琴。您还可以使用WCF数据服务客户端执行相同的工作,并了解Fiddler中请求的外观 有关如何使用$batch请求的信息:
显然,语法很重要。。。下面是有效的JSON片段。{“Count”:“5”,“Order”:{“uri”:“URL/Data.svc/Orders(2)”},“Item”:{“uri”:“URL/Data.svc/Items(1)”}}