hd2y
hd2y
I have a `CS8002` waring and look forward to the update. https://docs.microsoft.com/en-us/dotnet/standard/assembly/sign-strong-name
接叶老板说的,这个其实应该用导航属性来实现。我这边是通过层级来加载导航属性,你也可以改成指定需要加载的导航属性来实现。 我的方案是比如我有订单 `Order` 表,一对多关联订单明细 `OrderDetail` 表,然后 `OrderDetail` 一对一关联产品 `Product` 表等等。 如果只需要加载 `Order` 表,查询时指定查询 `Level` 为 1,如果需要查询到 `OrderDetail` 指定 `Level` 为 2,查询到 `Product` 为 3 等等。 当然如果你明确需要查询的表,也可以通过指定查询 `Order`、`Order.OrderDetail`、`Order.OrderDetail.Product` 的方式来限定导航属性加载到的层级。 至于条件,在 `DynamicFilterInfo`...
不是所有数据库都支持 json,建议可以直接定义成 string,或者定义成 json 对应的 DTO,然后使用 JsonMap 功能,这样数据库里统一是 text,但是会 CRUD 时会自动的序列化与反序列化。
可以先看下 CodeFirst 中的自定义特性一节,自己适配一个支持为不同数据库指定 DbType 的特性来用。
需要先检查传递进来的 entity 属性值是不是就已经乱码了。
一旦需要统一了,那碰到传递 SQL 的地方,替换到对应 Provider 用到前缀就是个麻烦事,可能参数要改成比较特殊的格式才好用正则一类的做处理,比如 `#@ParameterName@#` ∑( 口 ||。(话说考虑数据库切换还是尽量少写 SQL 才是正经做法 建议在自己的项目做好封装呢,需要传 SQL 的地方自己项目内约束规则,然后对SQL进行处理以及替换再传递给 FreeSql。
这种其实更建议封装为 `IFreeSql` 对象的扩展方法,提供给项目成员使用,因为这个需求的优先级没那么高,可能短期无法合并到发布版。
> sqlserver 2005 就有分区了 哈哈,被下面这句话误导了,我还奇怪呢。 > 在 SQL Server 2016 (13.x) SP1 之前,SQL Server 的各版本中均不提供已分区的表和索引。 没注意上面受支持的是所有版本。
其实首先可以考虑支持 `RANGE`,其次是 `LIST` 以及 `HASH`。 我现在有个困扰是项目中不可避免在数据库中写一些视图、存储过程等处理特殊业务,现在的项目里也有数不清的陈年代码,短时间没办法重构,如果直接分表,小组里面反对意见很大,要改的东西太多了。 我们考虑用分区策略,一种是根据ID或者时间也就是 `RANGE` 分区,还有一些表使用状态字段 `LIST` 分区。 周末的时候再查查资料看一下,现在每天被各种项目折磨的头晕眼花的,这种优化都要放在后面再慢慢处理了。😔 说了很多纯吐槽了没说到重点,其实不用把各种数据库的分区表特性都支持,我考虑是提取一个通用的,可以接受的方案,处理像我这样没办法分库分表的场景。
> 分区只是数据库层面的事,程序层面看它就是单表操作。 是的,要的也是这个效果,现在项目 Oracle 以及 SQL Server 用的多,对分区表的支持很友好,但是之前从来没考虑性能瓶颈,没有考虑过分区/分库/分表,导致现在积重难返了,只能考虑用分区这种见效快的方案了。