在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
fireasy2Fireasy是一套基于.Net Framework应用开发组件,其主旨思想为“让开发变为更简单”,其义为,使用尽可能少的组件,实现你所需的功能。Fireasy几乎覆盖了开发中可能使用到的技术,比如Log、Cache、AOP、IOC、ORM、MVC等等,并提供了Redis、RabbitMQ、NLog、Log4net等这些组件的适配。 Fireasy 支持 net3.5(已废弃)/net4.0(已废弃)/net4.5/net4.6/net4.7/netstandard2.0/netstandard2.1,只需一个dll即可,已发布到 nuget ,搜索添加即可。
Fireasy 的在线文档 http://www.fireasy.cn/docs。 Fireasy 的Demo项目 https://github.com/faib920/zero。
是一组公用的类库,提供一些常用的类和方法。
数据库底层的访问类库,目前支持MsSql、Oracle、MySql、SQLite、PostgreSql、Firebird等常见数据库。
public void Sample(){ using (var db = DatabaseFactory.CreateDatabase()) { //查询返回 var customers = db.ExecuteEnumerable<Customer>((SqlCommand)"select * from customers"); //分页,参数化 var ds = new DataSet(); var paper = new DataPager(5, 0); var parameters = new ParameterCollection(); parameters.Add("city", "London"); db.FillDataSet(ds, (SqlCommand)"select city from customers where city <> @city", segment: paper, parameters: parameters); //批量插入 var list = new List<BatcherData>(); for (var i = 0; i < 100000; i++) { list.Add(new BatcherData { ID = i, NAME = new Size(12, 20), BIRTHDAY = DateTime.Now }); } var provider = db.Provider.GetService<IBatcherProvider>(); provider.Insert(db, list, "BATCHERS"); //获取所有表定义 var schema = db.Provider.GetService<ISchemaProvider>(); var parameter = db.Provider.GetConnectionParameter(db.ConnectionString); foreach (var table in schema.GetSchemas<Table>(db, s => s.Schema == parameter.Schema)) { Console.WriteLine(table.Name + "," + table.Description); } }}
实体框架,Linq解析部份参考了iqtoolkit和NLite开源框架。
public void Sample(){ using (var context = new DbContext()) { DateTime? startTime = null; DateTime? endTime = null; var state = 0; //AssertWhere 用法 var orders = context.Orders .AssertWhere(startTime != null, s => s.OrderDate >= startTime) .AssertWhere(endTime != null, s => s.OrderDate <= endTime) .AssertWhere(state == 0, s => s.RequiredDate == DateTime.Now, s => s.RequiredDate >= DateTime.Now) .AsNoTracking(); //ExtandAs 扩展用法 var details = context.OrderDetails.Select(s => s.ExtendAs<OrderDetails>(() => new OrderDetails { ProductName = s.Products.ProductName })) .ToList(); //分页 var pager = new DataPager(50, 2); var products = context.Products.Segment(pager).ToList(); //排序 var sorting = new SortDefinition(); sorting.Member = "OrderDate"; sorting.Order = SortOrder.Descending; var orders1 = context.Orders .Select(s => new { s.OrderDate, CompanyName = s.Customers.CompanyName }) .OrderBy(sorting, u => u.OrderByDescending(s => s.OrderDate)) .ToList(); //按条件更新 context.Orders.Update(() => new Orders { Freight = 1 }, s => s.OrderDate >= DateTime.Now); //计算器方式更新 context.Orders.Update(s => new Orders { Freight = s.Freight * 100 }, s => s.OrderDate >= DateTime.Now); //按条件删除 context.Orders.Delete(s => s.OrderDate > DateTime.Now); //Batch插入 var depts = new List<Depts>(); for (var i = 0; i < 100; i++) { var d = Depts.New(); d.DeptName = "测试" + i; depts.Add(d); } context.Depts.Batch(depts, (u, s) => u.Insert(s)); }}
针对Asp.Net MVC的扩展,提供控制器工厂,使之与IOC无缝结合。
QQ号: 55570729QQ群: 6406277、225698098 |
请发表评论