-
Notifications
You must be signed in to change notification settings - Fork 455
Home
Q: 使用过程遇到问题/异常怎么办?
A: 请查看 ex.Message、ex.StackTrace 以及 ex.InnerException.Message、ex.InnerException.StackTrace 查找关键错误信息,以及仔细查看使用文档。当然你也可以在 github 上提 issue 或者咨询作者,不过寻求帮助时一定要把问题描述清楚,比如用法、框架版本、数据库、错误异常 Message 和 StackTrace 等重要信息,最好能一次性提供(搭配代码、截图更佳),以便对方高效理解和排查问题,节省你我时间。
泰拳警告: 经过多年更新和迭代,Chloe.ORM 已经十分稳定,可靠性遥遥领先。根据以往排错经验,使用 Chloe.ORM 过程遇上问题的十有八九是开发者自己使用的姿势不对所致,因此遇上问题/异常一定要先自己尝试解决,仔细查看使用文档和参考 github 上的 demo(基本覆盖了所有用法),这才是最有效率的途径!
Q: 查询如 q.Where(a => a.Name == "Chloe") 为什么生成的不是参数化 sql ?
A: 因为框架内部解析 lambda 时对于常量(ConstantExpression)不做参数化处理(刻意的,不要问为什么,问我也不告诉你),如需参数化,请使用变量,如:
var name = "Chloe";
q = q.Where(a => a.Name == name);
...
Tip: 自行拼接 lambda 表达式树的注意了, 千万不要用 ConstantExpression 包装你的变量,否则会生成非参数化 sql,存在 sql 注入风险!!! 包装变量方式参考这个 MakeWrapperAccess 方法:https://github.com/shuxinqin/Chloe/blob/master/src/Chloe/Extensions/ExpressionExtension.cs#L130
Q: int/long 类型非自增主键,为什么插入失败?
A: 框架针对主键有一些默认规则:
- 如果一个实体没显示指定主键,Chloe 默认选择名为 Id 的属性(如果存在)作为主键。
- 如果实体没有显式指定任何自增列并且主键为 Int16、Int32 或者 Int64 类型,则会默认主键为自增列。如若不是自增列,需使用特性 NonAutoIncrementAttribute 标记。
Q: 关于 string 类型属性
A: 对于区分 varchar 和 nvarchar 类型的数据库(SqlServer、Oracle等),如果数据字段是 varchar 类型,建议把属性的 DbType 设置为 DbType.AnsiString,否则某些情况下查询会出现类型转换,导致索引失效。
Q: Oracle 怎么支持 Clob/NClob?怎么向 PostgreSQL 插入 json 类型?
A: 通过配置 MappingType 处理参数类型,参考 https://github.com/shuxinqin/Chloe/blob/master/src/ChloeDemo/String_MappingType.cs 。
Q: 是否支持原生 sql 查询以及执行原生 sql 命令?
A: 支持,请查看 DbContext.Session 对象。
Q: 原生 sql 查询是否支持返回 dynamic?
A: 支持,IDbContext.SqlQuery(sql)。
Q: 是否支持 with nolock/updlock?
A: 支持(v3.3以上),用法参考 DbContext.Query() 方法重载。ps:v4.0以上支持乐观并发控制,参考Chloe.Annotations.ColumnAttribute.IsRowVersion
Q: 是否支持字符串大小于对比?
A: 支持(v3.3以上),请使用方法 Sql.Compare(T value1, CompareType compareType, T value2)。
Q: 是否支持 in、distinct、exists 查询?
A: 支持,具体用法看文档。
Q: 是否支持 case when 语法?
A: 支持(v3.3以上),用法如下:
q.Select(a => Case.When(a.Gender == Gender.Man).Then("Man").When(a.Gender == Gender.Woman).Then("Woman").Else(null));
Q: 是否支持多主键?
A: 支持。
Q: 查询是否有缓存?
A: 没有。
Q: 查询时如何忽略查询字段?
Q: 如何获取 DataTable?
Q: 传入一个实体,如何更新部分字段?
A: 请移步 https://github.com/shuxinqin/Chloe/wiki/Chloe.Extension
Q: 使用过程遇上问题,无法在文档上找到解决方案怎么办?
A: github 是 Chloe.ORM 的主要交流社区,有问题请移步 https://github.com/shuxinqin/Chloe/issues 留言,作者会及时给予回复。
Q: Chloe.ORM 会停更么?
A: 停更的话我会告诉你的。
Q: Chloe.ORM 是否收费?
A: 不收费。当然你也可以施舍点零花钱给作者植发,作者绝绝绝对不会拒绝
熬夜的时候容易引起脱发,熬夜时人的免疫力会下降,还会引起内分泌的变化,导致皮脂分泌增多,这些因素都不利于头发的生长,有可能引起脱发。如果出现熬夜脱发的情况,需要及时纠正日常的生活习惯,合理安排休息时间,早睡早起,适当的锻炼身体,多进食优质的蛋白质,增强身体的抵抗力,促进头发的生长。
发量有限,远离996!!!