Skip to content

antdimot/entity2sql

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
doc
 
 
src
 
 
 
 
 
 
 
 

Entity To SQL

A simple library for building SQL statements by entity class.

Example

Entity definitions:

    [TableMap( Name = "USERS" )]
    public class User
    {
        [PKeyMap( Name ="ID")]
        public int Id { get; set; }

        [ColumnMap( Name ="FIRST_NAME")]
        public string FirstName { get; set; }

        [ColumnMap( Name = "LAST_NAME" )]
        public string LastName { get; set; }

        [ColumnMap( Name = "AGE" )]
        public int Age { get; set; }

        [ColumnMap( Name = "RoleID" )]
        public Role Role { get; set; }
    }

    [TableMap( Name = "ROLES" )]
    public class Role
    {
        [PKeyMap( Name = "ID" )]
        public int Id { get; set; }

        [ColumnMap( Name = "NAME" )]
        public string Name { get; set; }
    }

Usage:

    var sqlBuilder = new SQLStatementBuilder();

    var select = sqlBuilder.MakeSelect<User>( o => o.FirstName == "Antonio" || o.LastName == "Di Motta" && o.Age == 150 );

    // Result:
    // SELECT t1.ID,t1.FIRST_NAME,t1.LAST_NAME,t1.AGE,t1.RoleID FROM USERS t1
    // WHERE (t1.FIRST_NAME = 'Antonio' OR (t1.LAST_NAME = 'Di Motta' AND t1.AGE = 150 ))

    var join = sqlBuilder.MakeJoin<User,Role>( (u,r) => u.Role.Id == r.Id );

    // Result:
    // SELECT t1.ID,t1.FIRST_NAME,t1.LAST_NAME,t1.AGE,t1.RoleID,t2.ID,t2.NAME FROM USERS t1 INNER JOIN ROLES t2 ON t1.RoleID=t2.ID

Releases

No releases published

Packages

No packages published

Languages