项目作者: antdimot

项目描述 :
SQL statements generator
高级语言: C#
项目地址: git://github.com/antdimot/entity2sql.git
创建时间: 2018-10-16T15:12:21Z
项目社区:https://github.com/antdimot/entity2sql

开源协议:The Unlicense

下载


Entity To SQL

A simple library for building SQL statements by entity class.

Example

Entity definitions:
```c#

  1. [TableMap( Name = "USERS" )]
  2. public class User
  3. {
  4. [PKeyMap( Name ="ID")]
  5. public int Id { get; set; }
  6. [ColumnMap( Name ="FIRST_NAME")]
  7. public string FirstName { get; set; }
  8. [ColumnMap( Name = "LAST_NAME" )]
  9. public string LastName { get; set; }
  10. [ColumnMap( Name = "AGE" )]
  11. public int Age { get; set; }
  12. [ColumnMap( Name = "RoleID" )]
  13. public Role Role { get; set; }
  14. }
  15. [TableMap( Name = "ROLES" )]
  16. public class Role
  17. {
  18. [PKeyMap( Name = "ID" )]
  19. public int Id { get; set; }
  20. [ColumnMap( Name = "NAME" )]
  21. public string Name { get; set; }
  22. }
  1. > Usage:
  2. ```c#
  3. var sqlBuilder = new SQLStatementBuilder();
  4. var select = sqlBuilder.MakeSelect<User>( o => o.FirstName == "Antonio" || o.LastName == "Di Motta" && o.Age == 150 );
  5. // Result:
  6. // SELECT t1.ID,t1.FIRST_NAME,t1.LAST_NAME,t1.AGE,t1.RoleID FROM USERS t1
  7. // WHERE (t1.FIRST_NAME = 'Antonio' OR (t1.LAST_NAME = 'Di Motta' AND t1.AGE = 150 ))
  8. var join = sqlBuilder.MakeJoin<User,Role>( (u,r) => u.Role.Id == r.Id );
  9. // Result:
  10. // 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