我有一個正在使用Microsoft.AspNetCore.OData.vNext包的ASPNet Core Web API應用程序。當使用查詢字符串嘗試利用OData功能時,我收到MissingManifestResourceException。這裏是有問題的代碼:使用OData查詢字符串時拋出MissingManifestResourceException
[EnableQuery]
[HttpGet()]
public class LocationsController : Controller
{
public IActionResult GetLocations()
{
IQueryable<Location> locationEntities = _locationInfoRepo.GetLocations();
if (locationEntities == null)
{
return NotFound();
}
var results = Mapper.Map<IEnumerable<LocationDTO>>(locationEntities);
return Ok(results);
}
}
注:我已經試圖改變從IActionResult方法類型的IQueryable <>無濟於事。我也評論過Automapper Map方法,以確保在那裏沒有問題。
下面是正在使用EF返回數據的方法:
public IQueryable<Location> GetLocations()
{
return _context.Locations;
}
這裏的查詢字符串沿着網址:http://localhost/api/locations $過濾器=名稱%20當量%20'Bob '
' 名稱? '是模型中指定的字符串字段,並且是數據庫中的列。
堆棧跟蹤:
System.Resources.MissingManifestResourceException: Could not find any resources appropriate for the specified culture or the neutral culture. Make sure "Microsoft.AspNetCore.OData.SRResources.resources" was correctly embedded or linked into assembly "Microsoft.AspNetCore.OData.vNext" at compile time, or that all the satellite assemblies required are loadable and fully signed.
at System.Resources.ManifestBasedResourceGroveler.HandleResourceStreamMissing(String fileName)
at System.Resources.ManifestBasedResourceGroveler.GrovelForResourceSet(CultureInfo culture, Dictionary`2 localResourceSets, Boolean tryParents, Boolean createIfNotExists, StackCrawlMark& stackMark)
at System.Resources.ResourceManager.InternalGetResourceSet(CultureInfo requestedCulture, Boolean createIfNotExists, Boolean tryParents, StackCrawlMark& stackMark)
at System.Resources.ResourceManager.InternalGetResourceSet(CultureInfo culture, Boolean createIfNotExists, Boolean tryParents)
at System.Resources.ResourceManager.GetString(String name, CultureInfo culture)
at Microsoft.AspNetCore.OData.SRResources.GetString(String name, String[] formatterNames)
at Microsoft.AspNetCore.OData.SRResources.get_ClrTypeNotInModel()
at Microsoft.AspNetCore.OData.ODataQueryContext..ctor(IEdmModel model, Type elementClrType, ODataPath path)
at Microsoft.AspNetCore.OData.EnableQueryAttribute.OnActionExecuted(ActionExecutedContext context)
at Microsoft.AspNetCore.Mvc.Filters.ActionFilterAttribute.<OnActionExecutionAsync>d__6.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.<InvokeNextActionFilterAsync>d__25.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Rethrow(ActionExecutedContext context)
at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.<InvokeNextExceptionFilterAsync>d__24.MoveNext()
有人能指出我在正確的方向?
要交叉引用我在WebApi GitHub項目中與OData團隊開放的問題,請參閱此問題的鏈接:https://github.com/Data/WebApi/issues/955 –