Squirrel 有松鼠、贮藏的意思。Squirrel Framework 正致力于让你轻盈、快速地构建基于 MongoDB / Azure Cosmos DB 的应用程序。
如何获取并使用?
- 查看这篇介绍,只需 4 步即可完成全部基础构建
- Squirrel Framework 类库完全基于 .NET Standard 2.0 构建,查看它的依赖关系
- 查看 README 及源代码 – GitHub
新版本 1.0.14 改进列表
# 全局改进
- 全部工程升级为 .NET Standard 2.0,.NET Framework 下最低版本需求降为 4.6.1
- 针对 Azure Cosmos DB 进行支持测试
- 为 NuGet 包集成类库的方法及参数描述信息,方便调用者查看说明信息
- 去除项目 pfx 证书,改为 snk 证书
- 增加类库开发者信息
- 增加单元测试工程
# SquirrelFramework.Utility – 发布 1.0.4 版本
- JsonHelper 类增加允许不指定泛型类型的反序列化方法,方法签名如下:
public static dynamic Deserialize(string jsonString)
- LambdaExpressionHelper 类增加从 Lambda 表达式中获取变量名的工具方法,方法签名如下:
public static string RetrievePropertyNameByLambdaExpression(Expression<Func<object>> expression) public static string RetrievePropertyNameByLambdaExpression<TSource, TField>(Expression<Func<TSource, TField>> expression)
- 改进 IEnumerableExtension 类中的 Shuffle() 乱序方法的实现
# SquirrelFramework – 发布 1.0.14 版本
- 更新 MongoDB Driver 及相关依赖至最新版本
- 修复 .NET Framework 4.7.2 无法引用的问题
- 允许 DomainModel 不指定 [Collection] 属性,默认将直接使用当前类的名字作为 MongoDB 的表(Collection)名
- 增加 GetTop() 方法, 可以指定需要获取数据的数量或者指定百分比,方法签名如下:
public IEnumerable<TDomain> GetTop(string collectionName, int resultNumber, Expression<Func<TDomain, object>> sortBy, bool isSortByDescending = false) public IEnumerable<TDomain> GetTop(string collectionName, double percent, Expression<Func<TDomain, object>> sortBy, bool isSortByDescending = false) public IEnumerable<TDomain> GetTop(string collectionName, int resultNumber, Expression<Func<TDomain, bool>> filter, Expression<Func<TDomain, object>> sortBy, bool isSortByDescending = false) public IEnumerable<TDomain> GetTop(string collectionName, double percent, Expression<Func<TDomain, bool>> filter, Expression<Func<TDomain, object>> sortBy, bool isSortByDescending = false)
- 增加 GetAll() 方法的重载,允许指定 OrderBy 参数,方法签名如下:
public IEnumerable<TDomain> GetAll(string collectionName, Expression<Func<TDomain, object>> sortBy, bool isSortByDescending = false) public IEnumerable<TDomain> GetAll(string collectionName, Expression<Func<TDomain, bool>> filter, Expression<Func<TDomain, object>> sortBy, bool isSortByDescending = false)
- 向 RepositoryBase 类的子类暴露 MongoDB 基础对象允许用户自定制查询,方法签名如下:
protected IMongoCollection<TDomain> GetCollection(string collectionName)
- 增加 GetNearBy 的一个重载方法,允许指定用于进行空间搜索的字段,并设置最大和最小的半径范围,同时优化了相关索引的创建逻辑,方法签名如下:
public IEnumerable<TDomain> GetNearBy( string collectionName, Expression<Func<TDomain, object>> field, Geolocation centerPoint, double maxRadius /* Meter */, double minRadius /* Meter */)
未来版本计划
下一版本 1.0.15
- 为所有公开方法提供调用说明,并构建一个方法说明站点
- 增加 GetPartialFields() 方法,允许对 MongoDB 某表的部分字段进行查询(泛型模板 及 dynamic 方式)
- 事物支持
- 添加数据库连接检查方法
- 提供一个轻量有效的自动关联查询与存储机制
近期计划
- Nuget 发布目标修改为 V3 版本
- 提供 like 方法
- 通过 Travis CI 构建持续集成
- 提供 where in 方法
- 替换 StackExchange.Redis 引用
- 类方法接口化
- GetNearBy() 方法增加查询条件 filter
- 提供一个约定配置类,从而方便自动化分表
1.1.0
- 作为长期稳定版本
- 发布一个等效的 Java 版本类库