using MySql.Data.EntityFramework; using MySql.Data.MySqlClient; using System; using System.Collections.Generic; using System.Configuration; using System.Data.Common; using System.Data.Entity; using System.Data.Entity.ModelConfiguration.Conventions; using System.Linq; using System.Text; using System.Threading.Tasks; using XdCxRhDW.Entity; using XdCxRhDW.Framework; namespace XdCxRhDW.Repostory { [DbConfigurationType(typeof(MySqlConfiguration))] public class MySqlContext: DbContext { public MySqlContext() : base(AppConfigHelper.GetConnectionString("MySql")) { //base的构造函数如果使用name则ConnectionString配置中必须包含providerName="MySql.Data.MySqlClient"、 //为了方便用户配置连接这里直接使用连接字符串而不是连接字符串的name } public MySqlContext(string connectionString) :base(connectionString) { } public Task> SqlQueryAsync(string sql) { return this.Database.SqlQuery(sql).ToListAsync(); } public Task ExecuteSqlCommandAsync(string sql) { return this.Database.ExecuteSqlCommandAsync(sql); } public Task SqlQueryOneAsync(string sql) { return this.Database.SqlQuery(sql).FirstOrDefaultAsync(); } protected override void OnModelCreating(DbModelBuilder modelBuilder) { //this.Database.Log = msg => //{ //}; modelBuilder.Properties() .Configure(c => c.HasPrecision(3)); // 3 表示毫秒精度 modelBuilder.Entity() .HasIndex(p => new { p.SatCode, p.TimeUTC }) .HasName("IX_XlInfo_SatCode_TimeUTC"); modelBuilder.Entity() .HasIndex(p => p.SatCode) .HasName("IX_XlInfo_SatCode"); modelBuilder.Entity() .HasIndex(p => p.TimeUTC) .HasName("IX_XlInfo_TimeUTC"); modelBuilder.Entity() .HasIndex(p => p.UpdateTime) .HasName("IX_TaskInfo_UpdateTime"); modelBuilder.Entity() .HasIndex(p => p.Module) .HasName("IX_LogRes_Module"); modelBuilder.Entity() .HasIndex(p => p.LogTime) .HasName("IX_LogRes_LogTime"); modelBuilder.Entity() .HasIndex(p => p.LogType) .HasName("IX_LogRes_LogType"); modelBuilder.Entity() .HasIndex(p => p.Deleted) .HasName("IX_LogRes_Deleted"); modelBuilder.Entity() .HasIndex(p => p.Deleted) .HasName("IX_StationRes_Deleted"); modelBuilder.Entity() .HasIndex(p => p.Deleted) .HasName("IX_CxRes_Deleted"); modelBuilder.Entity() .HasIndex(p => p.Deleted) .HasName("IX_CgRes_Deleted"); modelBuilder.Entity() .HasIndex(p => p.Deleted) .HasName("IX_PosRes_Deleted"); modelBuilder.Entity() .HasIndex(p => p.Deleted) .HasName("IX_CgXgfRes_Deleted"); modelBuilder.Entity() .HasIndex(p => p.Deleted) .HasName("IX_CheckRes_Deleted"); base.OnModelCreating(modelBuilder); } public DbSet XlInfos { set; get; } public DbSet TaskInfos { set; get; } public DbSet TaskSigs { set; get; } public DbSet TxInfos { get; set; } public DbSet SatInfos { get; set; } public DbSet FixedStation { get; set; } public DbSet SigInfos { get; set; } public DbSet SigDelays { get; set; } public DbSet TargetInfos { get; set; } public DbSet SysSetings { get; set; } public DbSet TaskRunnningInfos { get; set; } //以下为Range分区表 public DbSet LogRes { set; get; } public DbSet StationRes { get; set; } public DbSet CxRes { get; set; } public DbSet CgRes { get; set; } public DbSet CgXgfRes { get; set; } public DbSet PosRes { get; set; } public DbSet CheckRes { get; set; } } }