由于本文档,我能够在服务器端使用WebApiOdata和EntityFramework以及客户端的Breeze创建OData(v3)服务.
现在我想对OData规范的第4版做同样的事情.但有一个问题.EdmBuilderBreeze提供的类依赖于与版本3相关的'Microsoft.Data.Edm'.
在EdmBuilder这两行中阻止了项目的建立:
using Microsoft.Data.Edm.Csdl;
using Microsoft.Data.Edm.Validation;
Run Code Online (Sandbox Code Playgroud)
这是正常的,因为我的项目引用了'Microsoft.OData.Edm'(对于v4)而不是'Microsoft.Data.Edm'(对于v3).
所以我用这个替换了2个using语句:
using Microsoft.OData.Edm;
using Microsoft.OData.Edm.Csdl;
using Microsoft.OData.Edm.Validation;
Run Code Online (Sandbox Code Playgroud)
现在项目可以构建,但在运行时它会抛出此异常
"解析EDMX文档时遇到以下错误:UnexpectedXmlElement:根元素的元素'Edmx'是意外的.根元素应该是Edmx.:( 1,40)"
从EdmBuilder此时类:
using (var reader = XmlReader.Create(stream))
{
return EdmxReader.Parse(reader);
}
Run Code Online (Sandbox Code Playgroud)
有什么方法可以解决这个问题吗?就像EdmBuilder我可以在某处下载的新课程一样?:)
谢谢.
PS:我使用代码首次迁移和此代码在'WebApiConfig'中配置OData路由:
config.MapODataServiceRoute(
routeName: "ODataRoute",
routePrefix: "OData",
model: EdmBuilder.GetEdm<MyDbContext>(),
batchHandler: new DefaultODataBatchHandler(GlobalConfiguration.DefaultServer));
Run Code Online (Sandbox Code Playgroud) 我正在努力Asp.net MVC5 app和a Web APi2,API将用于多个站点,并用于验证用户.
我已经创建了MVC5和Web API项目VS 2013,授权服务器的默认模板来了grant_type=password,但我正在寻找使用代码授权流程的实现.
我在我的WebAPI + MVC项目中创建了Login视图,该视图应由客户端应用程序调用
我应该使用用户名和密码验证用户如果用户有效,则使用重定向Uri将Authorize代码传递给客户端应用程序
我在使用owin " OAuthAuthorizationServer " 集成上述流程时感到困惑,或者我应该在下面的方法中覆盖什么
public override Task GrantAuthorizationCode(OAuthGrantAuthorizationCodeContext context)
{
return base.GrantAuthorizationCode(context);
}
Run Code Online (Sandbox Code Playgroud)
如果有人能指导我实施,我将感激不尽.
我们无法在RhinoMocks中模拟这个类.
public class Service
{
public Service(Command[] commands){}
}
public abstract class Command {}
// Code
var mock = MockRepository.GenerateMock<Service>(new Command[]{}); // or
mock = MockRepository.GenerateMock<Service>(null)
Run Code Online (Sandbox Code Playgroud)
Rhino模拟失败抱怨它找不到具有匹配参数的构造函数. 我究竟做错了什么?
谢谢,
我正在研究 Web API,在使用 NUnit 进行单元测试时,我遇到了以下错误:
Tests.DemoTest.SessionLogOnBreakdownTest:
SetUp : Effort.Exceptions.EffortException : The Effort library failed to register its provider automatically, so manual registration is required.
a) Call the Effort.Provider.EffortProviderConfiguration.RegisterProvider() method at entry point of the application
or
b) Add the following configuration to the App.config file:
<system.data>
<DbProviderFactories>
<add name="Effort.Provider"
invariant="Effort.Provider"
description="Effort.Provider"
type="Effort.Provider.EffortProviderFactory, Effort" />
</DbProviderFactories>
</system.data>
----> System.Configuration.ConfigurationErrorsException : Failed to find or load the registered .Net Framework Data Provider.
TearDown : System.NullReferenceException : Object reference not set to an …Run Code Online (Sandbox Code Playgroud)