Lazy 延时加载属性,支持ManyToMany(多对多)

This commit is contained in:
28810
2019-01-21 20:08:06 +08:00
parent 9ec287535e
commit 0bcacc706a
2 changed files with 250 additions and 56 deletions

View File

@ -1,4 +1,5 @@
using FreeSql.DataAnnotations;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
@ -52,8 +53,43 @@ namespace FreeSql.Tests.MySql {
public List<TestTypeInfo> Types { get; set; }
}
public partial class Song {
[Column(IsIdentity = true)]
public int Id { get; set; }
public DateTime? Create_time { get; set; }
public bool? Is_deleted { get; set; }
public string Title { get; set; }
public string Url { get; set; }
public virtual ICollection<Tag> Tags { get; set; }
}
public partial class Song_tag {
public int Song_id { get; set; }
public virtual Song Song { get; set; }
public int Tag_id { get; set; }
public virtual Tag Tag { get; set; }
}
public partial class Tag {
[Column(IsIdentity = true)]
public int Id { get; set; }
public int? Parent_id { get; set; }
public virtual Tag Parent { get; set; }
public decimal? Ddd { get; set; }
public string Name { get; set; }
public virtual ICollection<Song> Songs { get; set; }
}
[Fact]
public void Lazy() {
//Type.GetType();
var sql = g.mysql.Select<Tag>().Where(a => g.mysql.Select<Song_tag>().Where(b => b.Tag_id == a.Id && b.Song_id == 1).Any());
var songs = g.mysql.Select<Song>().Limit(10).ToList();
var ts = g.mysql.Select<TestTypeInfo>(1).ToOne();