是否可以以同时适用于 Entity Framework 6 和 EF Core 的方式使用 .Include()?
我目前有可以访问IQueryable<>但不知道其来源的命令处理程序,并且可以根据运行的上下文更改源。例如,在运行实际应用程序时使用 Entity Framework 6,但使用 EF Core 进行测试(使用 SQLite In Memory 提供程序)
using System.Data.Entity;
class DemoCommandHandler
{
public void Handle(IQueryable<Blog> blogsQueryable, DemoCommand command)
{
//Need to get the blog and all the posts here
var blogs = blogsQueryable.Include(b => b.Posts).Single(b => b.Id = command.BlogId);
//Do stuff with blog and posts
}
}
以上在使用实体框架时工作正常,但.Include()在运行 EF Core 时不起作用(注意using System.Data.Entity);
如果 using 语句更改为,using Microsoft.EntityFrameworkCore则它在运行 EF Core 时有效,但在 Entity Framework 中无效。
有没有办法使框架不可知.Include()?或者至少支持 EF Core 和实体框架?
侃侃尔雅
相关分类