您的位置:首页 > 数据库 > MySQL

Choe.Orm框架下

2016-07-29 11:41 351 查看
Choe.Orm框架下的mysql技术

高效开发的NET.c#数据库访问框架(ORM)查询接口使用lambda表达式,使用对象的方法可以完成多表查询,分组查询,聚合查询,插入数据和批量操作。

public enum Gender

{

Man = 1,

Woman


}

[Table(“Users”)]

public class User

{

[Column(IsPrimaryKey = true)]

[AutoIncrement]

public int Id { get; set; }

public string Name { get; set; }

public Gender? Gender { get; set; }

public int? Age { get; set; }

public int? CityId { get; set; }

public DateTime? OpTime { get; set; }


}

public class City

{

[Column(IsPrimaryKey = true)]

public int Id { get; set; }

public string Name { get; set; }

public int ProvinceId { get; set; }


}

public class Province

{

[Column(IsPrimaryKey = true)]

public int Id { get; set; }

public string Name { get; set; }


}

建个 MySqlConnectionFactory 类,实现 IDbConnectionFactory 接口:

public class MySqlConnectionFactory : IDbConnectionFactory

{

string _connString = null;

public MySqlConnectionFactory(string connString)

{

this._connString = connString;

}

public IDbConnection CreateConnection()

{

MySqlConnection conn = new MySqlConnection(this._connString);

return conn;

}


}

创建一个 DbContext:

MySqlContext context = new MySqlContext(new MySqlConnectionFactory(DbHelper.ConnectionString));

再创建一个 IQuery:

IQuery q = context.Query();

查询数据

基本查询

IQuery q = context.Query();

q.Where(a => a.Id == 1).FirstOrDefault();

/*

SELECT
Users
.
Id
AS
Id
,
Users
.
Name
AS
Name
,
Users
.
Gender
AS
Gender
,
Users
.
Age
AS
Age
,
Users
.
CityId
AS
CityId
,
Users
.
OpTime
AS
OpTime
FROM
Users
AS
Users
WHERE
Users
.
Id
= 1 LIMIT 0,1

*/

//可以选取指定的字段

q.Where(a => a.Id == 1).Select(a => new { a.Id, a.Name }).FirstOrDefault();

/*

SELECT
Users
.
Id
AS
Id
,
Users
.
Name
AS
Name
FROM
Users
AS
Users
WHERE
Users
.
Id
= 1 LIMIT 0,1

*/

//分页

q.Where(a => a.Id > 0).OrderBy(a => a.Age).Skip(1).Take(999).ToList();

/*

SELECT
Users
.
Id
AS
Id
,
Users
.
Name
AS
Name
,
Users
.
Gender
AS
Gender
,
Users
.
Age
AS
Age
,
Users
.
CityId
AS
CityId
,
Users
.
OpTime
AS
OpTime
FROM
Users
AS
Users
WHERE
Users
.
Id
> 0 ORDER BY
Users
.
Age
ASC LIMIT 1,999

*/

连接查询

IQuery users = context.Query();

IQuery cities = context.Query();

IQuery provinces = context.Query();

//建立连接

IJoiningQuery
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql