Choe.Orm框架下
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.IdASId,Users.NameASName,Users.GenderASGender,Users.AgeASAge,Users.CityIdASCityId,Users.OpTimeASOpTimeFROMUsersASUsersWHEREUsers.Id= 1 LIMIT 0,1*/
//可以选取指定的字段
q.Where(a => a.Id == 1).Select(a => new { a.Id, a.Name }).FirstOrDefault();
/*
SELECT
Users.IdASId,Users.NameASNameFROMUsersASUsersWHEREUsers.Id= 1 LIMIT 0,1*/
//分页
q.Where(a => a.Id > 0).OrderBy(a => a.Age).Skip(1).Take(999).ToList();
/*
SELECT
Users.IdASId,Users.NameASName,Users.GenderASGender,Users.AgeASAge,Users.CityIdASCityId,Users.OpTimeASOpTimeFROMUsersASUsersWHEREUsers.Id> 0 ORDER BYUsers.AgeASC LIMIT 1,999*/
连接查询
IQuery users = context.Query();
IQuery cities = context.Query();
IQuery provinces = context.Query();
//建立连接
IJoiningQuery
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
