当前位置: 首页 > news >正文

学生创业做网站制作设计网站关键词seo费用

学生创业做网站制作设计,网站关键词seo费用,搜索热门关键词,网上商城包括什么类型市面上有很多流行的 ORM(对象关系映射)框架可以用于 .NET 开发。本文主要针对以下几种常见的 ORM 框架,对其优劣进行分析及总结,希望能够帮助大家进行ORM框架的使用有所帮助。 1. Entity Framework (EF) 特点 • 官方支持&…

市面上有很多流行的 ORM(对象关系映射)框架可以用于 .NET 开发。本文主要针对以下几种常见的 ORM 框架,对其优劣进行分析及总结,希望能够帮助大家进行ORM框架的使用有所帮助。

1. Entity Framework (EF)


特点
•    官方支持:由 Microsoft 开发和维护,是 .NET 生态系统中最受欢迎的 ORM 框架。
•    丰富的特性:
•    支持 Code First、Database First 和 Model First 等多种开发模式。
•    提供强大的 LINQ 查询支持。
•    内置迁移工具,方便数据库版本控制。
•    支持多种数据库,如 SQL Server、MySQL、PostgreSQL、SQLite 等。
•    性能优化:
•    提供了缓存机制、异步操作等性能优化选项。
•    社区活跃:
•    拥有庞大的开发者社区和丰富的文档资源。
示例代码

using Microsoft.EntityFrameworkCore;public class BloggingContext : DbContext
{public DbSet<Blog> Blogs { get; set; }public DbSet<Post> Posts { get; set; }protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder){optionsBuilder.UseSqlServer("YourConnectionStringHere");}
}

2. Dapper


特点
•    轻量级:Dapper 是一个微 ORM,专注于简单的查询和映射,性能极高。
•    简洁易用:
•    使用简单,学习曲线低。
•    直接执行 SQL 查询并返回强类型结果。
•    灵活性:
•    允许编写原生 SQL 查询,适合需要高度控制查询语句的场景。
•    性能优异:
•    性能非常接近直接使用 ADO.NET,适合高并发场景。
示例代码

using Dapper;
using System.Data.SqlClient;public class Product
{public int Id { get; set; }public string Name { get; set; }public decimal Price { get; set; }
}public List<Product> GetProducts()
{using (var connection = new SqlConnection("YourConnectionStringHere")){return connection.Query<Product>("SELECT * FROM Products").ToList();}
}

3. NHibernate


特点
•    历史悠久:基于 Java 的 Hibernate 框架移植而来,功能强大且成熟。
•    丰富的特性:
•    支持复杂的映射配置,包括继承、多对多关系等。
•    提供缓存、事务管理等功能。
•    支持多种数据库,如 SQL Server、MySQL、PostgreSQL 等。
•    灵活性:
•    配置灵活,支持 XML 和 Fluent API 两种方式。
•    学习曲线较陡:
•    功能丰富但也相对复杂,初学者可能需要更多时间来掌握。
示例代码

using NHibernate;
using NHibernate.Cfg;public class Product
{public virtual int Id { get; set; }public virtual string Name { get; set; }public virtual decimal Price { get; set; }
}public class ProductMap : ClassMapping<Product>
{public ProductMap(){Table("Products");Id(x => x.Id, m => m.Generator(Generators.Identity));Property(x => x.Name);Property(x => x.Price);}
}public class Program
{private static ISessionFactory sessionFactory;public static void Main(string[] args){var configuration = new Configuration();configuration.Configure();configuration.AddMapping(new ProductMap());sessionFactory = configuration.BuildSessionFactory();using (var session = sessionFactory.OpenSession()){using (var transaction = session.BeginTransaction()){var product = session.Get<Product>(1);Console.WriteLine(product.Name);transaction.Commit();}}}
}

4. LLBLGen Pro


特点
•    商业产品:提供专业版和社区版,功能全面且性能优越。
•    丰富的特性:
•    支持多种数据库,如 SQL Server、MySQL、PostgreSQL、Oracle 等。
•    提供强大的代码生成工具,自动生成实体类和数据访问层代码。
•    支持 LINQ 查询、事务管理等功能。
•    灵活性:
•    可以选择不同的设计模式,如 Active Record、Repository 等。
•    性能优化:
•    提供了多种性能优化选项,如批量操作、缓存机制等。
示例代码

using SD.LLBLGen.Pro.ORMSupportClasses;
using SD.LLBLGen.Pro.Examples.EntityClasses;public class ProductService
{private readonly IPersistenceCore _persistenceCore;public ProductService(IPersistenceCore persistenceCore){_persistenceCore = persistenceCore;}public List<ProductEntity> GetProducts(){using (var adapter = new DataAccessAdapter()){var products = new List<ProductEntity>();adapter.FetchEntityCollection(products, null);return products;}}
}

5. NPoco


特点
•    轻量级:类似于 Dapper,但提供了更多的功能。
•    简洁易用:
•    使用简单,学习曲线低。
•    支持 LINQ 查询和 POCO 映射。
•    灵活性:
•    允许编写原生 SQL 查询,适合需要高度控制查询语句的场景。
•    性能优异:
•    性能接近 Dapper,适合高并发场景。
示例代码

using NPoco;
using System.Data.SqlClient;public class Product
{public int Id { get; set; }public string Name { get; set; }public decimal Price { get; set; }
}public class Database : Database
{public Database() : base("YourConnectionStringHere", DatabaseType.SqlServer2012) { }
}public List<Product> GetProducts()
{using (var db = new Database()){return db.Fetch<Product>("SELECT * FROM Products");}
}

6. RepoDb


特点
•    轻量级:专注于高性能的数据访问操作。
•    简洁易用:
•    使用简单,学习曲线低。
•    支持 LINQ 查询和 POCO 映射。
•    灵活性:
•    允许编写原生 SQL 查询,适合需要高度控制查询语句的场景。
•    性能优异:
•    性能非常接近直接使用 ADO.NET,适合高并发场景。
示例代码

using RepoDb;
using System.Data.SqlClient;public class Product
{public int Id { get; set; }public string Name { get; set; }public decimal Price { get; set; }
}public class Program
{public static void Main(string[] args){using (var connection = new SqlConnection("YourConnectionStringHere")){var products = connection.QueryAll<Product>();foreach (var product in products){Console.WriteLine($"{product.Name} - {product.Price}");}}}
}

7.SqlSugar


优点
1.    易用性:
•    SqlSugar 的 API 设计非常简洁,易于上手,适合快速开发。
2.    多数据库支持:
•    支持多种主流数据库,包括 MySQL、SQL Server、PostgreSQL、Oracle、SQLite、ClickHouse 等。
3.    丰富的特性:
•    提供了诸如分页、事务管理、批量操作、动态表名等功能,并且支持复杂的查询构建。
4.    良好的文档和支持:
•    官方文档详尽,提供了大量的示例代码和教程,便于学习和使用。
5.    扩展性强:
•    可以通过插件或扩展包(如 SqlSugar.ClickHouseCore)轻松扩展功能。
6.    性能优化:
•    提供了一些性能优化选项,如缓存机制和异步操作。
缺点
1.    某些高级功能不够完善:
•    虽然 SqlSugar 功能丰富,但在某些高级功能上可能不如 FreeSQL 强大。
2.    社区活跃度稍低:
•    相比 FreeSQL,SqlSugar 的社区活跃度略低,但仍然有较好的支持。

using SqlSugar;
using Microsoft.Extensions.Configuration;
using System;
using System.IO;
using System.Linq;namespace SqlSugarClickHouseExample
{[SugarTable("orders")]public class Order{[SugarColumn(IsPrimaryKey = true, IsIdentity = true)]public int Id { get; set; }public DateTime OrderDate { get; set; }public int CustomerId { get; set; }public int ProductId { get; set; }public int Quantity { get; set; }public decimal Price { get; set; }}class Program{static void Main(string[] args){// 读取配置文件var configuration = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile("appsettings.json", optional: false, reloadOnChange: true).Build();// 获取连接字符串var connectionString = configuration.GetConnectionString("Default");// 创建 SqlSugarClient 实例var db = new SqlSugarClient(new ConnectionConfig(){ConnectionString = connectionString,DbType = DbType.ClickHouse,IsAutoCloseConnection = true});// 插入数据var order = new Order{OrderDate = DateTime.Now,CustomerId = 1,ProductId = 101,Quantity = 2,Price = 19.99m};db.Insertable(order).ExecuteCommand();// 查询数据var orders = db.Queryable<Order>().Where(o => o.OrderDate >= new DateTime(2023, 1, 1)).OrderByDescending(o => o.OrderDate).ToList();foreach (var item in orders){Console.WriteLine($"Order ID: {item.Id}, Order Date: {item.OrderDate}, Customer ID: {item.CustomerId}, Product ID: {item.ProductId}, Quantity: {item.Quantity}, Price: {item.Price}");}// 更新数据order.Quantity = 3;db.Updateable(order).ExecuteCommand();// 删除数据db.Deleteable<Order>().InSingle(order.Id).ExecuteCommand();}}
}

8.FreeSQL


优点
1.    高性能:
•    FreeSQL 在查询生成和执行方面进行了大量优化,提供了高效的数据库操作。
2.    多数据库支持:
•    支持多种主流数据库,如 MySQL、SQL Server、PostgreSQL、SQLite 等。
3.    丰富的特性:
•    提供了诸如分页、事务管理、批量操作等常用功能,并且支持复杂的查询构建。
4.    活跃的社区:
•    拥有一个活跃的开发者社区,能够及时获得支持和更新。
5.    代码生成器:
•    内置了强大的代码生成工具,可以自动生成实体类和 CRUD 操作代码。
缺点
1.    学习曲线:
•    对于初学者来说,可能需要一些时间来熟悉其 API 和配置。
2.    文档相对较少:
•    相比 SqlSugar,FreeSQL 的官方文档和示例代码相对较少。

示例代码:

using FreeSql;
using Microsoft.Extensions.Configuration;
using System;
using System.IO;
using System.Linq;namespace FreeSqlClickHouseExample
{[Table(Name = "orders")]public class Order{[Column(IsPrimary = true, IsIdentity = true)]public int Id { get; set; }public DateTime OrderDate { get; set; }public int CustomerId { get; set; }public int ProductId { get; set; }public int Quantity { get; set; }public decimal Price { get; set; }}class Program{static void Main(string[] args){// 读取配置文件var configuration = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile("appsettings.json", optional: false, reloadOnChange: true).Build();// 获取连接字符串var connectionString = configuration.GetConnectionString("Default");// 创建 FreeSql 实例var fsql = new FreeSqlBuilder().UseConnectionString(DataType.ClickHouse, connectionString).Build();// 插入数据var order = new Order{OrderDate = DateTime.Now,CustomerId = 1,ProductId = 101,Quantity = 2,Price = 19.99m};fsql.Insert(order).ExecuteAffrows();// 查询数据var orders = fsql.Select<Order>().Where(o => o.OrderDate >= new DateTime(2023, 1, 1)).OrderByDescending(o => o.OrderDate).ToList();foreach (var item in orders){Console.WriteLine($"Order ID: {item.Id}, Order Date: {item.OrderDate}, Customer ID: {item.CustomerId}, Product ID: {item.ProductId}, Quantity: {item.Quantity}, Price: {item.Price}");}// 更新数据order.Quantity = 3;fsql.Update<Order>().SetSource(order).ExecuteAffrows();// 删除数据fsql.Delete<Order>().Where(o => o.Id == order.Id).ExecuteAffrows();}}
}

配置文件示例 (appsettings.json):

{"ConnectionStrings": {"Default": "Host=127.0.0.1;Port=9000;Username=default;Password=;Database=default"},"FreeSql": {"Connections": {"Default": {"ConnectionString": "Host=127.0.0.1;Port=9000;Username=default;Password=;Database=default","DbType": "ClickHouse"}}}
}

总结



•    Entity Framework:适合大多数 .NET 项目,特别是需要快速开发和维护的场景。
•    Dapper:适合需要高性能和灵活查询的场景,尤其是高并发应用。
•    NHibernate:适合需要复杂映射和高级功能的大型项目。
•    LLBLGen Pro:适合需要专业级功能和性能优化的商业项目。
•    NPoco 和 RepoDb:适合需要轻量级和高性能的场景,介于 Dapper 和 EF 之间。

•    FreeSQL 适合需要高性能和复杂功能的大型项目。
•    SqlSugar 适合需要快速开发和保持代码简洁的中小型项目。

http://www.hkea.cn/news/828393/

相关文章:

  • 加强新闻网站建设建议seo高手培训
  • 安丘网站建设制作怎样制作网页设计
  • 食品网站建设优化案例热门职业培训班
  • 龙华新区做网站大地seo视频
  • 网站彩票投注员做啥的真正免费的网站建站平台运营
  • wordpress 中文注册鸡西seo
  • 佛山企业如何建网站seo的内容怎么优化
  • 在什么网站上做自媒体windows优化大师是自带的吗
  • 装修公司的网站怎么做第三方营销平台有哪些
  • 百度公司做网站吗手机网页链接制作
  • 武汉移动网站制作今天新闻最新消息
  • 酒泉建设厅网站百度seo刷排名软件
  • 天津个人网站建设yandex引擎
  • 网站改版建设 有哪些内容网络营销策划方案怎么做
  • 网站建设拾金手指下拉seo的实现方式
  • 北京宣传片湖南seo优化哪家好
  • 下载app 的网站 如何做黑帽seo排名技术
  • 个人是否做众筹网站哪里可以免费推广广告
  • 外贸网站该怎么做青岛百度推广优化怎么做的
  • 网站建设中 网页代码优化关键词排名公司
  • 网站标题优化怎么做泉州百度首页优化
  • 学习网站建设的是什么专业优化网站排名公司
  • 固定ip做网站西安网站建设推广
  • 做响应式网站好不好软文发布门户网站
  • 重庆做网站建设的公司哪家好最基本的网站设计
  • 长春网站制作wang网站营销软文
  • discuz 网站搬家市场营销的策划方案
  • 做婚礼网站的公司简介seo网站关键词优化软件
  • 哪些客户需要做网站推广平台排名前十名
  • 团购的网站扣佣金分录怎么做厦门百度竞价