Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 基于EF模型在WCF数据服务项目中创建具有多个链接的条目_C#_Entity Framework_Post_Wcf Data Services - Fatal编程技术网

C# 基于EF模型在WCF数据服务项目中创建具有多个链接的条目

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

我正在尝试创建一个WCF数据服务,该服务公开一个由实体框架模型表示的数据库,并在针对具有多个1-*继承的表运行HTTP POST请求时遇到问题

实体框架表如下所示:

大多数具有一个父实体的表都可以通过POST到父URI(即“”)进行访问。我遇到的问题是,由于多重继承,我无法使用此方法。我可以允许一个FK为空,并使用单独的PUT操作进行更新,但这只是一个糟糕的代码

我正在使用JSON创建HTTP请求。这是我一直在尝试的一个例子

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)”}}