Results 28 comments of hd2y

近期也在尝试这个,发现 ISelect 设计上的问题,有些进行不下去。用起来会和正常的 IQueryable 有些区别。 例如: ```cs IFreeSql freeSql = new FreeSqlBuilder() .UseConnectionString(DataType.Sqlite, "Data Source=:memory:;") .UseAutoSyncStructure(true) .Build(); freeSql.Aop.CurdBefore += (s, e) => { e.Sql.Dump(); }; var sel = freeSql.Select(); sel.Where(t=>t.Id...

> @hd2y #644 和这个例子没有关系的,追求的不是这个效果。因为 AsQueryable 依赖于 ISelect,所以看起来是支持 IQueryable 的功能,但是实际执行的结果是完全不一样的,一旦应用在项目中,会给团队里其他用 EF 的小伙伴造成困扰。

> Where会修改前面的值。 是的,我是在研究如何用 System.Linq.Dynamic.Core,但是因为这个问题暂时也搁置了。 https://github.com/dotnetcore/FreeSql/issues/782

做过类似的工作,也尝试按每个业务生成一套与之匹配的数据表。 但是我目前我个人的做法是定义一些通用的大宽表,所有数据使用 AutoMapper 清洗以后存储到各种字段里。 大宽表存储了原始 DTO 的类型,以及使用 JsonMap 存储了序列化数据,方便后期重新清洗这些数据。 其实对于表结构变化比较频繁的,我更倾向于使用 MongoDB 这种文档数据库,或者使用 PostgreSQL 这种对 JSON 数据格式友好的数据库。(捂脸逃

添加一个无参数构造函数,base 到你需要的构造函数然后赋默认值。

> ```cs > var list = repo2.Where(t => t.Code.StartsWith("X")) > .Include(t => t.Orgnization) > .IncludeMany(t => t.OrderItems, then => then.IncludeMany(t2 => t2.Material.Units)) > .ToList(); > ``` 在写扩展方法的时候发现好像有限制: ```cs // 可以获取到数据...

代码有些乱,我单独把这部分列出来吧: ```cs void Main() { IFreeSql freeSql = new FreeSqlBuilder() .UseConnectionString(DataType.Sqlite, "Data Source=:memory:;") .UseAutoSyncStructure(true) .UseNoneCommandParameter(true) .Build(); freeSql.Aop.CurdBefore += (s, e) => { e.Sql.Dump(); }; var company = new Company {...

指定层级加载,写了个 `IncludeLevel` 的扩展方法,这部分好了就应该可以用起来了: ```cs public class TableRefTree { public int Level { get; set; } public TableInfo TableInfo { get; set; } public TableRef TableRef { get; set; } public...

另外一个功能我想基于 `DynamicFilterCustom` 实现,但是现在拿不到 `ISelect` 对象,不知道该怎么扩展合适了,叶老板有时间的时候也帮忙看下吧::cry: ```cs // 使用方式 DynamicFilterInfo dynamicFilterInfo = new DynamicFilterInfo { Operator = DynamicFilterOperator.Custom, Field = $"{nameof(DynamicFilterMyCustom.Include)} {typeof(DynamicFilterMyCustom).FullName}", Value = JsonConvert.SerializeObject(new DynamicFilterInfo { Operator = DynamicFilterOperator.Eq, Field...

我现在的使用方式发现一个问题,例如: ```cs var filter2 = new DynamicFilterInfo { Field = "Material.Code", Operator = DynamicFilterOperator.Eq, Value = "TEST1", }; freeSql.Select().Where(t1 => t1.OrderItems.AsSelect().WhereDynamicFilter(filter2).Any()).ToList().Dump(); ``` 打印SQL为: ```sql SELECT a."Id", a."Code", a."OrgnizationId" FROM "Order"...