diff --git a/多表查询.md b/多表查询.md index 0b91ff7..d1ffb1e 100644 --- a/多表查询.md +++ b/多表查询.md @@ -18,6 +18,7 @@ class TestTypeInfo { public int ParentId { get; set; } public TestTypeParentInfo Parent { get; set; } public string Name { get; set; } + public List Topics { get; set; } } class TestTypeParentInfo { public int Id { get; set; } @@ -163,6 +164,20 @@ var subquery = select.ToSql(a => new { }); ``` +## AsSelect + +```csharp +fsql.Select().Where(a => a.Topics.AsSelect().Any(b => b.Title.Contains("xx"))).ToSql(); +``` + +效果等同于: + +```csharp +fsql.Select().Where(a => fsql.Select().Any(b => b.Title.Contains("xx"))).ToSql(); +``` + +将集合属性快速转换为 ISelect 进行子查询操作。 + ## WhereCascade 多表查询时,像isdeleted每个表都给条件,挺麻烦的。WhereCascade使用后生成sql时,所有表都附上这个条件。