A simple library for building SQL statements by entity class.
Entity definitions:
[TableMap(Name="USERS")]publicclassUser{[PKeyMap(Name="ID")]publicintId{get;set;}[ColumnMap(Name="FIRST_NAME")]publicstringFirstName{get;set;}[ColumnMap(Name="LAST_NAME")]publicstringLastName{get;set;}[ColumnMap(Name="AGE")]publicintAge{get;set;}[ColumnMap(Name="RoleID")]publicRoleRole{get;set;}}[TableMap(Name="ROLES")]publicclassRole{[PKeyMap(Name="ID")]publicintId{get;set;}[ColumnMap(Name="NAME")]publicstringName{get;set;}}Usage:
varsqlBuilder=newSQLStatementBuilder();varselect=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 ))varjoin=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