Dapper for fetching data from multiple Tables in Dotnet core

using Dapper;

using System;

using System.Data.SqlClient;

using System.Collections.Generic;

using System.Linq;


public class User

{

    public int Id { get; set; }

    public string Name { get; set; }

}


public class Order

{

    public int Id { get; set; }

    public int UserId { get; set; }

    public string Product { get; set; }

}


public class Program

{

    private static string connectionString = "YourConnectionStringHere";


    public static void Main()

    {

        using (var connection = new SqlConnection(connectionString))

        {

            connection.Open();


            // Fetch data from multiple tables

            var sql = @"

                SELECT u.Id, u.Name, o.Id AS OrderId, o.Product

                FROM Users u

                LEFT JOIN Orders o ON u.Id = o.UserId";


            var result = connection.Query<User, Order, User>(sql, (user, order) =>

            {

                user.Orders = user.Orders ?? new List<Order>();

                user.Orders.Add(order);

                return user;

            }, splitOn: "OrderId").ToList();


            foreach (var user in result)

            {

                Console.WriteLine($"User: {user.Name}");

                foreach (var order in user.Orders)

                {

                    Console.WriteLine($"  Order: {order.Product}");

                }

            }

        }

    }

}


Comments

Popular posts from this blog

Multiline to singleline IN C# - CODING

EF Core interview questions for beginners

EF Core interview questions for experienced