diff --git a/SqlServerTest/Demos/ComplexModel.cs b/SqlServerTest/Demos/ComplexModel.cs new file mode 100644 index 000000000..9500de3ef --- /dev/null +++ b/SqlServerTest/Demos/ComplexModel.cs @@ -0,0 +1,51 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using SqlSugar; +using OrmTest.Demo; + +namespace OrmTest.Demo +{ + public class ComplexModel : DemoBase + { + public static void Init() + { + var db = GetInstance(); + var student = db.Queryable().ToList(); + } + } + + [SugarTable("Student")] + public class CMStudent : ModelContext + { + public int Id { get; set; } + public string Name { get; set; } + public int SchoolId { get; set; } + + [SugarColumn(IsIgnore = true)] + public CMSchool SchoolSingle + { + get + { + return base.CreateMapping().Single(it => it.Id == this.Id); + } + } + + [SugarColumn(IsIgnore = true)] + public List SchoolList + { + get + { + return base.CreateMapping().Where(it => it.Id == this.Id).ToList(); + } + } + } + + [SugarTable("School")] + public class CMSchool + { + public int Id { get; set; } + public string Name { get; set; } + } +} \ No newline at end of file diff --git a/SqlServerTest/Program.cs b/SqlServerTest/Program.cs index b2435bc58..caafd709e 100644 --- a/SqlServerTest/Program.cs +++ b/SqlServerTest/Program.cs @@ -42,6 +42,7 @@ namespace OrmTest OrmTest.Demo.JoinSql.Init(); OrmTest.Demo.Filter.Init(); OrmTest.Demo.MaterSlave.Init(); + OrmTest.Demo.ComplexModel.Init(); } } } diff --git a/SqlServerTest/SqlServerTest.csproj b/SqlServerTest/SqlServerTest.csproj index 88d709886..2f4bfeb28 100644 --- a/SqlServerTest/SqlServerTest.csproj +++ b/SqlServerTest/SqlServerTest.csproj @@ -48,6 +48,7 @@ + diff --git a/SqlSugar/Entities/ModelContext.cs b/SqlSugar/Entities/ModelContext.cs new file mode 100644 index 000000000..dfa6d6271 --- /dev/null +++ b/SqlSugar/Entities/ModelContext.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace SqlSugar +{ + public class ModelContext + { + internal SqlSugarClient Context { get; set; } + public ISugarQueryable CreateMapping()where T:class,new() + { + return Context.Queryable(); + } + } +} diff --git a/SqlSugar/SqlSugar.csproj b/SqlSugar/SqlSugar.csproj index d304e4f5f..8633956d5 100644 --- a/SqlSugar/SqlSugar.csproj +++ b/SqlSugar/SqlSugar.csproj @@ -64,6 +64,7 @@ +