Mapping classes - jacentino/DbFun GitHub Wiki

Classes

DbFun can also handle POCO objects. Consider following class:

type User(          
        userId  : int,
        name    : string,
        email   : string,
        created : DateTime) = 
    member __.UserId    = userId
    member __.Name      = name
    member __.Email     = email
    member __.Created   = created

Its properties can be mapped to query parameters using following configuration:

let config = defaultConfig.AddParamPropertyMapper<User>()

or directly, in a query definition:

let insertUser = query.Sql(
    "insert into User (userId, name, email, created) values (@userId, @name, @email, @created)",
    Params.Properties<User>(),
    Results.Unit)

POCO can also be used as a result structure. To make it work, following configuration should be added:

let config = defaultConfig.AddRowClassMapper<User>()

or in query definition:

let getUser = query.Sql(
    "select userId, name, email, created from User where userId = @userId", 
    Params.Int("userId"), 
    Results.List(Rows.Class<User>()))
⚠️ **GitHub.com Fallback** ⚠️