小编Bjø*_*ard的帖子

如何使用 Entity Framework Core 5.0 将复杂 SQL 查询的结果行映射到自定义 DTO?

我有一个自定义且有些复杂的 SQL 查询,我需要通过 EF Core DbContext 执行该查询。

我意识到下面的示例代码可以使用简单的 .Select() 来解决,但不幸的是我的实际表格是通过魔术键连接的并且没有导航属性。

无论如何,我可以在不选择导航属性的情况下实现以下功能吗?

namespace ClassLibrary1
{
    public class MyService
    {
        private readonly MyContext _context;

        public void MyMethod()
        {
            var mySql = @"SELECT Foo.FooName, Bar.BarValue FROM Foo JOIN Bar ON Foo.Key = Bar.Key";
            List<Dto> dtoList = _context.Database.MethodImLookingFor<Dto>(mySql); // Any ideas?
        }
    }
    
    public class MyContext : DbContext
    {
        public DbSet<Foo> Foo { get; set; }
        public DbSet<Bar> Bar { get; set; }
    }

    // My models are only records for brevity.
    public record …
Run Code Online (Sandbox Code Playgroud)

c# sql-server entity-framework entity-framework-core .net-core

-1
推荐指数
1
解决办法
3494
查看次数