using FreeSql;
using FreeSql.DataAnnotations;
using System;
using System.Collections.Generic;

namespace dbcontext_01 {

	public class SongContext : DbContext {

		public DbSet<Song> Songs { get; set; }
		public DbSet<Song> Tags { get; set; }

		protected override void OnConfiguring(DbContextOptionsBuilder builder) {
			builder.UseFreeSql(dbcontext_01.Startup.Fsql);
		}
	}


	public 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 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 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; }
		public virtual ICollection<Tag> Tags { get; set; }
	}
}