我正在尝试LinqKit AsExpandable在我的EfCore2.0项目中使用,但遇到了Includes不起作用的问题。
在尝试调试时,我LinqKit从 github下载了源代码,并Nuget用项目引用替换了我项目中的引用。
在调试LinqKit项目时,我注意到我的调用Include没有达到我在 上设置的断点ExpandableQueryOfClass<T>.Include。
我做了一些进一步的测试并注意到如果我第一次转换到断点会被击中ExpandableQueryOfClass(这是一个LinqKit我公开的内部类,所以如果我引用Nuget包,我就不能做转换)。
这是一个错误LinqKit还是我做错了什么?
这是我的测试代码。
using System.Linq;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
using Internal.DAL.Db;
using Internal.Models.Customer;
using LinqKit; // Referencing LinqKit.Microsoft.EntityFrameworkCore
using Xunit;
namespace Internal.EntityFramework.Tests
{
public class UnitTest1
{
private DbContextOptionsBuilder<DataContext> _ctxBuilder =>
new DbContextOptionsBuilder<DataContext>().UseSqlServer(Connection.String);
[Fact]
public async Task SuccessTest()
{
using (var ctx = new DataContext(_ctxBuilder.Options))
{
var query …Run Code Online (Sandbox Code Playgroud) 我正在尝试设置一个动作过滤器,只有StatusCode在HttpContext.Response302 的情况下才会执行某些操作.
我希望能够在OnActionExecuting方法中做到这一点,但StatusCode总是如此200.
ActionFilter 码:
public class CustomFilter : IActionFilter
{
public void OnActionExecuting(ActionExecutingContext context)
{
// do some setup
}
public void OnActionExecuted(ActionExecutedContext context)
{
if (context.HttpContext.Response.StatusCode == StatusCodes.Status302Found)
{
// never get here
}
}
}
Run Code Online (Sandbox Code Playgroud)
我的Action方法:
public IActionResult Redirect()
{
return RedirectToAction("Index", "Home");
}
Run Code Online (Sandbox Code Playgroud)
和注册ActionFilter在startup:
public void ConfigureServices(
IServiceCollection services)
{
services.AddMvc(
options =>
{
options.Filters.Add(new CustomFilter());
});
}
Run Code Online (Sandbox Code Playgroud)
我已经检查了浏览器,它正确返回302并进行重定向.我也试过使用IAsyncActionFilter …