mk3008 / Carbunql

Carbunql is an advanced Raw SQL editing library.
https://mk3008.github.io/Carbunql/
MIT License
41 stars 4 forks source link

[Experiment] TypeSafe Query Builder - Allows you to specify a DataSet in the select clause #430

Closed mk3008 closed 4 months ago

mk3008 commented 4 months ago
    private FluentSelectQuery<order_detail_with_product> SelectOrderDetailWithProduct()
    {
        var od = Sql.DefineDataSet<order_detail>();
        var p = Sql.DefineDataSet<product>();

        var query = Sql.From(() => od)
            .InnerJoin(() => p, () => od.product_id == p.product_id)
            .Select(() => od)
            .Select(() => new { product_name = p.name });
        return query.Compile<order_detail_with_product>();
    }

The above code should generate the following SQL:

select
    od.product_id
    , p.name as product_name
from
    order_detail as od
    inner join product as p on od.prroduct_id = p.product_id