C# ASP.net核心OData字符串键为空
我这里有一个奇怪的。我一直在将一些控制器从asp.net odata移植到asp.net核心odata,但在主键方面遇到了一些障碍 在我的.net framework 4.6.2应用程序中,我将GUID作为主键,在.net core应用程序中,我将字符串作为主键。除了一个get(key)方法外,我已经能够让大多数东西都工作了。这是我的方法签名:C# ASP.net核心OData字符串键为空,c#,asp.net-core,odata,C#,Asp.net Core,Odata,我这里有一个奇怪的。我一直在将一些控制器从asp.net odata移植到asp.net核心odata,但在主键方面遇到了一些障碍 在我的.net framework 4.6.2应用程序中,我将GUID作为主键,在.net core应用程序中,我将字符串作为主键。除了一个get(key)方法外,我已经能够让大多数东西都工作了。这是我的方法签名: [HttpGet] [EnableQuery] public async Task<IActionResult> Get([FromODat
[HttpGet]
[EnableQuery]
public async Task<IActionResult> Get([FromODataUri] string key)
{
// key is null!
}
[HttpGet]
[启用查询]
公共异步任务Get([FromODataUri]字符串键)
{
//密钥为空!
}
请遵循下面的步骤
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
services.AddOData(); //This Is added for OData
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseMvc(routeBuilder =>
{
routeBuilder.EnableDependencyInjection(); //This Is added for OData
routeBuilder.Expand().Select().Count().OrderBy().Filter(); //This Is added for OData
});
}
[HttpGet]
[EnableQuery] //This Is added for OData
public ActionResult<List<TestModel>> Get()
{
var model = new List<TestModel>();
for (int i = 1; i <= 10; i++)
{
var res = new TestModel()
{
ID = i,
Name="Test"+i,
Mobile="Test"+i,
City="Test_"+i
};
model.Add(res);
}
return model;
}
public class TestModel
{
public int ID { get; set; }
public string Name { get; set; }
public string Mobile { get; set; }
public string City { get; set; }
}
[HttpGet]
[EnableQuery]//这是为OData添加的
公共行动结果获取()
{
var模型=新列表();
对于(int i=1;我请在Startup.cs中添加您的配置以及模型和控制器。我无法用给定的信息重现您的问题。。。