Skip to content

Enable flexible FromSql mapping #21627

Open
@AndriySvyryd

Description

@AndriySvyryd

This builds upon #17063, #13358 to enable different mappings for different SQL queries and to allow parameter configuration. This would also support JSON columns.

It would be configured like so:

modelBuilder
  .Entity<Blog>()
  .HasQuerySql("GetDeletedBlogs", "select id as BlogId, name as BlogName from Blogs where Deleted={0}",
    q =>
    {
        q.Propety(b => b.Id).ToColumn("BlogId"));
        q.Propety(b => b.Name).ToColumn("BlogName"));
        q.Parameter("0").HasType("bit"));
    });

And used like so:

var deletedBlogs = context.Set<Blog>().FromNamedSql("GetDeletedBlogs", true).ToList();

or

var deletedBlogs = context.Set<Blog>().FromNamedSqlRaw("GetDeletedBlogs",
  "select id as BlogId, name as BlogName from Blogs where Deleted={0}",
  true)
 .ToList();

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions