SqlSuger 连接Oracle方式是 Oracle公司自己的dll Oracle.ManagedDataAccess.Client
原先的连接方式是微软的 Oracle.DataAccess.Client
前者不需要在客户机装Oracle客户端 后者需要装客户端
前者的链接字符串跟后者有少许区别
<!--sqlsuger Oracel-->
<add key="sqlsuger" value="Data Source=域名/服务名;User ID=xx;Password=xx;Max Pool Size=512;Pooling=true"/>
SqlSuger有着很好的兼容lambda 和 sql 分页存储过程 拼接语句
1.建立Student实体
2.初始化数据库
public class Base
{
public static SqlSugarClient GetInstance(string str)
{
SqlSugarClient db = new SqlSugarClient(new ConnectionConfig()
{
ConnectionString = str,
DbType = DbType.Oracle, //必填
IsAutoCloseConnection = true,
InitKeyType = InitKeyType.Attribute // Attribute用于DbFirst 从数据库生成model的
//InitKeyType = InitKeyType.SystemTable SystemTable用于Codefirst 从model库生成数据库表的
}); return db;
}
}
3. 在数据层调用
var db = Base.GetInstance(str);
//支持Sql
var list = db.SqlQueryable<Student>("select * from Student").ToList();
//条件查询 list集合
var Bom_list = db.Queryable<Student>().Where(x=>x.PF_NAME=="admin").ToList();
//条件查询 CodeFrist实体
var Bom = db.Queryable<Student>().Where(x => x.PF_NAME == "admin").First();
//条件in查询
string[] vs = { "张三", "李四" };
var in1 = db.Queryable<Student>().In(it => it.PF_NAME, vs).ToList();
// SELECT * FROM[Student] WHERE[PF_NAME] IN('张三','李四')
//分页
var Bom_page = db.Queryable<Student>().GroupBy(x => x.PF_NAME).Skip(2 * 2).Take(2).ToList();
//聚合
var Bom_sum = Bom_list.GroupBy(x=>x.PF_NAME).Skip(2 * 2).Take(2).ToList().Select(x=> new { name = x.Key,count = x.Count()}).ToList();
foreach (var item in Bom_sum)
{
var names = item.name;
var sum = item.count;
}