Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $YECBGYFECGEAFWHA as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2

Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $BBWFDDBHHYHDXXAB as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2
关于Asp.Net Core MongoDB的实例代码_创想鸟

关于Asp.Net Core MongoDB的实例代码

废话不说直接上代码;

关于Asp.Net Core MongoDB的实例代码关于Asp.Net Core MongoDB的实例代码

using MongoDB.Bson.Serialization.Attributes;namespace XL.Core.MongoDB{public interface IEntity{/// /// 主键///         [BsonId]        TKey Id { get; set; }    }}

View Code

关于Asp.Net Core MongoDB的实例代码关于Asp.Net Core MongoDB的实例代码

    [BsonIgnoreExtraElements(Inherited = true)]public abstract class Entity : IEntity{/// /// 主键///         [BsonRepresentation(BsonType.ObjectId)]public virtual string Id { get; set; }            }

View Code

关于Asp.Net Core MongoDB的实例代码关于Asp.Net Core MongoDB的实例代码

    public interface IRepository : IQueryable where T : IEntity{#region Fileds/// /// MongoDB表/// IMongoCollection DbSet { get; }/// /// MongoDB库/// IMongoDatabase DbContext { get; }#endregion#region Find/// /// 根据主键获取对象/// /// ///         T GetById(TKey id);/// /// 获取对象/// /// /// IEnumerable Get(Expression<Func> predicate);/// /// 获取对象/// /// /// /// Task<IEnumerable> GetAsync(Expression<Func> predicate,            CancellationToken cancellationToken = default(CancellationToken));#endregion#region Insert/// /// 插入文档/// /// ///         T Insert(T entity);/// /// 异步插入文档/// /// /// /// Task InsertAsync(T entity, CancellationToken cancellationToken = default(CancellationToken));/// ///     Adds the new entities in the repository./// /// The entities of type T.void Insert(IEnumerable entities);/// /// 插入文档/// /// /// /// Task InsertAsync(IEnumerable entities, CancellationToken cancellationToken = default(CancellationToken));#endregion#region Update/// /// 更新文档/// /// ///         UpdateResult Update(T entity);/// /// 异步更新文档/// /// /// /// Task UpdateAsync(T entity, CancellationToken cancellationToken = default(CancellationToken));#endregion#region Delete/// /// 根据主键ID/// /// ///         T Delete(TKey id);/// /// 异步根据ID删除文档/// /// /// /// Task DeleteAsync(TKey id, CancellationToken cancellationToken = default(CancellationToken));/// /// 异步删除/// /// /// /// Task DeleteAsync(Expression<Func> predicate,            CancellationToken cancellationToken = default(CancellationToken));/// /// 删除/// /// /// DeleteResult Delete(Expression<Func> predicate);#endregion#region Other/// /// 计数/// /// /// long Count(Expression<Func> predicate);/// /// 计数/// /// /// /// Task CountAsync(Expression<Func> predicate,            CancellationToken cancellationToken = new CancellationToken());/// /// 是否存在/// /// /// bool Exists(Expression<Func> predicate);#endregion#region Query/// /// 分页/// 注:只适合单属性排序/// /// /// /// /// /// IEnumerable Paged(Expression<Func> predicate, Expression<Func> sortBy,int pageSize, int pageIndex = 1);/// /// /// /// /// /// /// /// /// Task<List> PagedAsync(Expression<Func> predicate, Expression<Func> sortBy,int pageSize, int pageIndex = 1,            CancellationToken cancellationToken = new CancellationToken());#endregion}  public interface IRepository : IRepositorywhere T : IEntity{    }

View Code

关于Asp.Net Core MongoDB的实例代码关于Asp.Net Core MongoDB的实例代码

  public class MongoRepository : IRepository where T : IEntity{#region Constructorprotected MongoRepository(IMongoCollection collection)        {            DbSet = collection;            DbContext = collection.Database;        }#endregionpublic IEnumerator GetEnumerator()        {return DbSet.AsQueryable().GetEnumerator();        }        IEnumerator IEnumerable.GetEnumerator()        {return GetEnumerator();        }#region 字段public Type ElementType => DbSet.AsQueryable().ElementType;public Expression Expression => DbSet.AsQueryable().Expression;public IQueryProvider Provider => DbSet.AsQueryable().Provider;public IMongoCollection DbSet { get; }public IMongoDatabase DbContext { get; }#endregion#region Findpublic T GetById(string id)        {return Get(a => a.Id.Equals(id)).FirstOrDefault();        }public IEnumerable Get(Expression<Func> predicate)        {return DbSet.FindSync(predicate).Current;        }public async Task<IEnumerable> GetAsync(Expression<Func> predicate,            CancellationToken cancellationToken = new CancellationToken())        {var task = await DbSet.FindAsync(predicate, null, cancellationToken);return task.Current;        }#endregion#region Insertpublic T Insert(T entity)        {            DbSet.InsertOne(entity);return entity;        }public Task InsertAsync(T entity, CancellationToken cancellationToken = new CancellationToken())        {return DbSet.InsertOneAsync(entity, null, cancellationToken);        }public void Insert(IEnumerable entities)        {            DbSet.InsertMany(entities);        }public Task InsertAsync(IEnumerable entities, CancellationToken cancellationToken = new CancellationToken())        {return DbSet.InsertManyAsync(entities, null, cancellationToken);        }#endregion#region Updatepublic UpdateResult Update(T entity)        {var doc = entity.ToBsonDocument();return DbSet.UpdateOne(Builders.Filter.Eq(e => e.Id, entity.Id),new BsonDocumentUpdateDefinition(doc));        }public Task UpdateAsync(T entity, CancellationToken cancellationToken = new CancellationToken())        {var doc = entity.ToBsonDocument();return DbSet.UpdateOneAsync(Builders.Filter.Eq(e => e.Id, entity.Id),new BsonDocumentUpdateDefinition(doc), cancellationToken: cancellationToken);        }#endregion#region Deletepublic T Delete(string id)        {return DbSet.FindOneAndDelete(a => a.Id.Equals(id));        }public Task DeleteAsync(string id, CancellationToken cancellationToken = new CancellationToken())        {return DbSet.FindOneAndDeleteAsync(a => a.Id.Equals(id), null, cancellationToken);        }public Task DeleteAsync(Expression<Func> predicate,            CancellationToken cancellationToken = new CancellationToken())        {return DbSet.DeleteManyAsync(predicate, cancellationToken);        }public DeleteResult Delete(Expression<Func> predicate)        {return DbSet.DeleteMany(predicate);        }#endregion#region Otherpublic long Count(Expression<Func> predicate)        {return DbSet.Count(predicate);        }public Task CountAsync(Expression<Func> predicate,            CancellationToken cancellationToken = new CancellationToken())        {return DbSet.CountAsync(predicate, null, cancellationToken);        }public bool Exists(Expression<Func> predicate)        {return Get(predicate).Any();        }#endregion#region Pagepublic IEnumerable Paged(Expression<Func> predicate, Expression<Func> sortBy,int pageSize, int pageIndex = 1)        {var sort = Builders.Sort.Descending(sortBy);return DbSet.Find(predicate).Sort(sort).Skip(pageSize * pageIndex - 1).Limit(pageSize).ToList();        }public Task<List> PagedAsync(Expression<Func> predicate, Expression<Func> sortBy,int pageSize, int pageIndex = 1,            CancellationToken cancellationToken = new CancellationToken())        {return Task.Run(() =>{var sort = Builders.Sort.Descending(sortBy);return DbSet.Find(predicate).Sort(sort).Skip(pageSize * pageIndex - 1).Limit(pageSize).ToList();            }, cancellationToken);        }#endregion#region Helper/// /// 获取类型的所有属性信息/// /// /// /// /// private PropertyInfo[] GetPropertyInfos(Expression<Func> select)        {var body = select.Body;switch (body.NodeType)            {case ExpressionType.Parameter:var parameterExpression = body as ParameterExpression;if (parameterExpression != null) return parameterExpression.Type.GetProperties();break;case ExpressionType.New:var newExpression = body as NewExpression;if (newExpression != null)return newExpression.Members.Select(m => m as PropertyInfo).ToArray();break;            }return null;        }#endregion}

View Code

使用如下:

关于Asp.Net Core MongoDB的实例代码关于Asp.Net Core MongoDB的实例代码

    public class MongoDBSetting    {public string DataBase { get; set; }public string UserName { get; set; }public string Password { get; set; }public List Services { get; set; }    }public class MongoServers    {public string Host { get; set; }public int Port { get; set; } = 27017;    }

View Code

 

关于Asp.Net Core MongoDB的实例代码关于Asp.Net Core MongoDB的实例代码

 public class LogsContext    {private readonly IMongoDatabase _db;public LogsContext(IOptions options)        {var permissionSystem =MongoCredential.CreateCredential(options.Value.DataBase, options.Value.UserName,                    options.Value.Password);var services = new List();foreach (var item in options.Value.Services)            {                services.Add(new MongoServerAddress(item.Host, item.Port));            }var settings = new MongoClientSettings            {                Credentials = new[] {permissionSystem},                Servers = services            };var _mongoClient = new MongoClient(settings);            _db = _mongoClient.GetDatabase(options.Value.DataBase);        }public IMongoCollection ErrorLog => _db.GetCollection("Error");public IMongoCollection WarningLog => _db.GetCollection("Warning");    }

View Code

关于Asp.Net Core MongoDB的实例代码关于Asp.Net Core MongoDB的实例代码

 public static IServiceCollection UserMongoLog(this IServiceCollection services,            IConfigurationSection configurationSection)        {            services.Configure(configurationSection);            services.AddSingleton();return services;        }

View Code

关于Asp.Net Core MongoDB的实例代码关于Asp.Net Core MongoDB的实例代码

public interface IErrorLogService : IRepository{    }public class ErrorLogService : MongoRepository, IErrorLogService    {public ErrorLogService(LogsContext dbContext) : base(dbContext.ErrorLog)        {        }    }

View Code

最后:

关于Asp.Net Core MongoDB的实例代码关于Asp.Net Core MongoDB的实例代码

services.UserMongoLog(Configuration.GetSection("Mongo.Log"));

View Code

关于Asp.Net Core MongoDB的实例代码关于Asp.Net Core MongoDB的实例代码

"Mongo.Log": {"DataBase": "PermissionSystem","UserName": "sa","Password": "shtx@123","Services": [      {"Host": "192.168.1.6","Port": "27017"  }    ]  }

View Code

刚学洗使用MongoDB,才疏学浅,请大神多多指教

以上就是关于Asp.Net Core MongoDB的实例代码的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1432437.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月17日 08:05:56
C#中foreach实例代码
下一篇 2025年12月17日 08:06:26

相关推荐

  • Spring Boot集成MongoDB Atlas:正确配置与故障排除

    本教程详细指导如何在Spring Boot应用中正确配置与连接MongoDB Atlas集群。我们将重点讲解如何获取并使用正确的Atlas连接URI,安全地处理用户认证信息,以及准确指定目标数据库。通过实例代码和常见错误排查,帮助开发者避免连接失败,确保应用与MongoDB Atlas的顺畅集成。 …

    2026年9月22日
    600
  • Laravel自定义用户提供者?用户提供者怎样实现?

    自定义用户提供者可集成非Eloquent模型与多种数据源,如NoSQL、API、LDAP或文件,通过实现UserProvider和Authenticatable接口,灵活处理用户检索与密码验证,解决认证问题需确保接口方法正确实现并合理配置。 自定义 Laravel 用户提供者允许你使用非 Eloqu…

    2026年9月11日
    100
  • 数据量大的App制作,数据库如何选型?

    在开发处理大量数据的应用程序时,数据库的选择至关重要。选择一个合适的数据库不仅能确保数据的存储效率和安全性,还能提升应用程序的整体性能和用户体验。以下将从几个关键方面探讨如何为数据量大的app选择合适的数据库。 首先,考虑数据量的大小。 对于数据量庞大的应用程序,首要考虑的是数据库的存储能力和扩展性…

    2026年9月7日
    000
  • 在 Spring Boot Web 应用程序中序列化枚举

    枚举类型在定义应用程序域内有限且明确的值集方面非常有效,有助于避免代码中出现无效状态。 应用场景 以下以一个Spring Boot 3.3.x 和 MongoDB 实现的笔记Web应用为例,演示枚举值的序列化和反序列化方法。 我们将定义一个Type枚举,表示待办事项的类型:事件和活动。 public…

    2026年9月7日
    000
  • 玩转mongoDB(五):mongoDB 3.0+ 查询性能分析

    为了展示mongodb的性能分析方法,我们首先创建一个包含200万个文档的集合。(在我的电脑上,插入过程大约耗时15分钟。如果您想插入更多文档,只要有耐心等待即可。) 为了演示的效果,我们先来创建一个有200万个文档的记录。(我自己的电脑耗了15分钟左右插入完成。如果你想插更多的文档也没问题,只要有…

    2026年9月7日
    200
  • MySQL如何监控数据库性能_有哪些常用监控工具?

    MySQL如何监控数据库性能_有哪些常用监控工具?MySQL如何监控数据库性能_有哪些常用监控工具?MySQL如何监控数据库性能_有哪些常用监控工具?MySQL如何监控数据库性能_有哪些常用监控工具?

    mysql性能监控需关注关键指标、使用合适工具、设置告警并注意易忽略细节。一、最关键监控指标包括连接数、qps/tps、慢查询数量、innodb读写情况、锁等待与死锁;二、常用工具包括show processlist、pmm、zabbix、prometheus+grafana、pt-query-di…

    2026年9月5日 用户投稿
    100
  • 高效单元测试:使用Helmich/Mongomock模拟MongoDB

    我最近参与开发一个基于mongodb的项目,其中涉及大量的数据库操作。为了保证代码质量,我们需要编写全面的单元测试。然而,直接使用真实的mongodb进行单元测试带来了诸多不便:测试速度慢,需要搭建和维护测试数据库,以及测试环境的依赖性等问题。这些问题严重影响了开发效率和测试的稳定性。 为了解决这个…

    用户投稿 2026年9月4日
    200
  • 这次简单多了,最新版 MongoDB 安装

    这次简单多了,最新版 MongoDB 安装这次简单多了,最新版 MongoDB 安装这次简单多了,最新版 MongoDB 安装这次简单多了,最新版 MongoDB 安装

    在 windows 10 系统上安装 mongodb 4.0.1 版本变得更为简便,基本上一路点击“下一步”就能完成安装,不再需要繁琐的配置。 首先,访问 MongoDB 官方网站,下载 MongoDB 4.0.1 版本,网址如下: https://www.php.cn/link/9cba84644…

    2026年9月4日 用户投稿
    300
  • Web全栈开发者如何提升技能,获得更好的就业机会?

    Web全栈开发:提升技能,拓展职业发展 如何提升Web全栈开发技能,从而获得更理想的就业机会,是许多开发者共同关注的问题。本文将探讨有效提升全栈开发能力的途径,帮助您在竞争激烈的就业市场中脱颖而出。 虽然无法提供具体的全栈学习路线图,但我们可以从编程大师的经验中汲取灵感。 (此处省略图片,但其核心思…

    2026年9月2日
    200
  • MongoDB ObjectId类型转换报错:如何正确处理String到ObjectId的转换?

    MongoDB ObjectId类型转换错误排查与解决 在MongoDB数据库操作中,ObjectId类型常常引发转换错误。ObjectId是MongoDB文档的唯一标识符,与普通字符串不同,直接转换可能导致异常。本文针对“将字符串转换为ObjectId时报错”的问题提供解决方案。 用户反馈的错误信…

    2026年9月1日
    000
  • MongoDB ObjectId类型转换错误:字符串转ObjectId失败如何排查?

    MongoDB ObjectId转换错误排查指南 在使用MongoDB时,经常需要将字符串类型的ID转换为ObjectId类型。如果转换失败,将会影响数据库操作。本文针对字符串转ObjectId报错问题提供排查方法。 问题:将字符串转换为ObjectId时报错,错误信息未提供,但可能原因与字符串ID…

    2026年9月1日
    100
  • 发布 ASP.NET Core 2.x 应用到 Ubuntu

    发布 ASP.NET Core 2.x 应用到 Ubuntu发布 ASP.NET Core 2.x 应用到 Ubuntu发布 ASP.NET Core 2.x 应用到 Ubuntu发布 ASP.NET Core 2.x 应用到 Ubuntu

    将asp.net core 2.x 应用发布到linux(ubuntu)服务器上时,通常采用kestrel作为服务器,因为它是跨平台的且高度优化。kestrel可以直接作为边缘服务器使用,但更推荐将其置于反向代理(如nginx)之后,以实现负载均衡和更好的扩展性。 在这种配置中,HTTPS请求首先到…

    2026年8月31日 用户投稿
    100
  • 如何在CentOS和Fedora上将Node.js程序与MongoDB连接

    本篇文章将介绍关于将node.js应用程序与mongodb连接的方法。另外,在centos和redhat系统上使用mongoose节点应用程序为nodejs配置mongodb驱动器。 步骤1:首要条件 我们假设系统上已经安装了node.js和mongodb。如果没有安装,可以参考下面的文章完成所需的…

    2026年8月30日
    000
  • laravel支持几种数据库

    Laravel 支持多种数据库连接,包括:MySQL、PostgreSQL、SQLite、SQL Server、MariaDB、MongoDB 和 Redis。要连接到数据库,您需要在 .env 文件中设置配置并使用 DB 外观进行连接。 Laravel 支持的数据库 Laravel 是一个 PHP…

    2026年8月30日
    100
  • 怎么在Linux系统中以单容器安装Nginx+ASP.NET Core

    怎么在Linux系统中以单容器安装Nginx+ASP.NET Core怎么在Linux系统中以单容器安装Nginx+ASP.NET Core怎么在Linux系统中以单容器安装Nginx+ASP.NET Core怎么在Linux系统中以单容器安装Nginx+ASP.NET Core

    推荐在生产环境中使用反向代理服务器转发请求到kestrel http服务器,本文将会实践将nginx —>asp.net core 部署架构容器化的过程。 Nginx->ASP.NET Coe部署架构容器化   在Docker中部署Nginx—>ASP.NE…

    2026年8月30日 用户投稿
    100
  • Spring Boot集成Nacos时,为什么读取不到配置项“spring.data.mongodb.uri”?

    Spring Boot项目Nacos配置中心读取“spring.data.mongodb.uri”失败分析 在使用Spring Boot整合Nacos配置中心时,经常会遇到配置读取失败的情况。本文针对错误提示“Could not resolve placeholder ‘spring.d…

    2026年8月28日
    100
  • Node.js/JavaScript:高效转换嵌套对象数组为自定义字符串格式

    本文将指导您如何在Node.js或JavaScript环境中,将来自MongoDB等数据源的嵌套对象数组,高效地转换为扁平化的自定义字符串格式。通过运用Array.prototype.map()、解构赋值、展开语法和模板字面量等现代JavaScript特性,您将学会如何优雅地处理复杂数据结构,实现清…

    2026年8月27日
    100
  • MySQL如何支持强化学习环境 使用MySQL管理强化学习状态和动作数据

    mysql可通过设计episodes、transitions、policies和hyperparameters等表构建结构化数据模型,支持强化学习的数据持久化;2. 数据写入采用批量插入策略以减少i/o开销,读取时利用索引提升采样效率,并结合json或blob字段存储复杂状态与动作;3. 为应对高并…

    2026年8月27日
    200
  • 游戏服务器(Game Server)的后端架构

    游戏服务器的后端架构重要,因为它直接影响玩家的游戏体验。1) 高效的网络架构如使用tcp/ip和websocket处理客户端请求;2) 负载均衡通过nginx和haproxy分配流量;3) 数据同步使用分布式数据库如redis保证数据一致性;4) 安全性通过加密算法和验证机制防范攻击;5) 扩展性利…

    2026年8月27日
    300
  • 表单数据验证与过滤的最佳实践

    我们需要重视表单数据的验证和过滤,以确保应用的安全性和数据的完整性。1) 结合使用客户端和服务器端验证,客户端提供即时反馈,服务器端确保数据安全。2) 验证不同类型的数据,如字符串、数字、日期,确保格式和业务逻辑正确。3) 处理错误时提供友好的错误信息,并防止泄露敏感信息。4) 使用适当的函数过滤数…

    2026年8月26日
    000

发表回复

登录后才能评论
关注微信