c# – 在WCF数据服务应用程序中迁移EntityFramwork 6和VS 2013后无法更新或删除

前端之家收集整理的这篇文章主要介绍了c# – 在WCF数据服务应用程序中迁移EntityFramwork 6和VS 2013后无法更新或删除前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
迁移到EntityFramework和VS 2013之后,我无法更新或删除资源.
Request URL:service.svc/Orders(22354)
Request Method:DELETE
Status Code:500 Internal Server Error
Request Headersview source
Accept:application/json,text/javascript,*/*; q=0.01
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8,fr;q=0.6
Host:localhost
Origin:http://localhost
Proxy-Connection:keep-alive
Referer:orders.html
User-Agent:Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML,like Gecko)         Chrome/31.0.1650.57 Safari/537.36
X-Requested-With:XMLHttpRequest

我有以下错误

<?xml version="1.0" encoding="UTF-8"?>
   <m:error xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/Metadata">
       <m:code />
       <m:message xml:lang="fr-FR">An error occurred while processing this request.</m:message>
       <m:innererror>
           <m:message>Could not find any resources appropriate for the specified culture or the neutral culture.  Make sure "System.Data.Services.resources" was correctly embedded or linked into assembly "Microsoft.OData.EntityFrameworkProvider" at compile time,or that all the satellite assemblies required are loadable and fully signed.</m:message>
           <m:type>System.Resources.MissingManifestResourceException</m:type>
           <m:stacktrace>at System.Resources.ManifestBasedResourceGroveler.HandleResourceStreamMissing(String fileName)&#xD;
      at System.Resources.ManifestBasedResourceGroveler.GrovelForResourceSet(CultureInfo culture,Dictionary`2 localResourceSets,Boolean tryParents,Boolean createIfNotExists,StackCrawlMark&amp; stackMark)&#xD;
      at System.Resources.ResourceManager.InternalGetResourceSet(CultureInfo requestedCulture,StackCrawlMark&amp; stackMark)&#xD;
      at System.Resources.ResourceManager.InternalGetResourceSet(CultureInfo culture,Boolean tryParents)&#xD;
      at System.Resources.ResourceManager.GetString(String name,CultureInfo culture)&#xD;
      at System.Data.Services.TextRes.GetString(String name,Object[] args)&#xD;
      at System.Data.Services.Providers.ObjectContextServiceProvider.SetConcurrencyValues(Object resource,Nullable`1 checkForEquality,IEnumerable`1 concurrencyValues)&#xD;
      at System.Data.Services.UpdatableWrapper.SetETagValues(Object resourceCookie,ResourceSetWrapper container)&#xD;
      at System.Data.Services.DataService`1.HandleDeleteOperation(RequestDescription description,IDataService dataService)&#xD;
      at System.Data.Services.DataService`1.ProcessIncomingRequest(RequestDescription description,IDataService dataService)&#xD;
      at System.Data.Services.DataService`1.HandleNonBatchRequest(RequestDescription description)&#xD;
      at System.Data.Services.DataService`1.HandleRequest()</m:stacktrace>
       </m:innererror>
   </m:error>

任何想法 ?

谢谢你的帮助.

解决方法

如果有人想尝试这个解决方案…我有同样的问题.如果我将一个分离的实体附加到上下文然后尝试更新/删除它,似乎这个错误出现了.
Entity entity; //detached

context.AttachTo("entitySetName",entity);
context.DeleteObject(entity);
context.SaveChanges(); //exception

这对我来说是有效的.

//get entity from context instead of attaching the "old" one
var newEntity = ctx.Table.Where(w => w.ID == Entity.ID).FirstOrDefault();

context.DeleteObject(newEntity);
context.SaveChanges(); //works
原文链接:https://www.f2er.com/csharp/94157.html

猜你在找的C#相关文章