/// <summary> /// 根据元数据键值获取已生成的DbContext. 使用时请模块初始化时在数据库中 /// 插入元数据地址。 /// </summary> /// <typeparam name="T">DbContext的类型</typeparam> /// <param name="metadatakey"> /// 元数据地址的键名。Key:Member /// Value:metadata=res://*/Models.Member.csdl|res://*/Models.Member.ssdl|res://*/Models.Member.msl /// </param> /// <returns></returns> public static T GetDbContext <T>(string metadatakey) where T : DbContext { T contexta = null; var metadatainfo = DatabaseMetadataCache.Get(metadatakey); if (metadatainfo == null) { var manager = new DatabaseMetadataManager(); metadatainfo = manager.GetMetadataInfo(metadatakey); } if (metadatainfo != null) { var path = string.Format("{0};{1};{2};", metadatainfo.Metadata, PROVIDER, metadatainfo.Connectionstring); contexta = (T)Activator.CreateInstance(typeof(T), path); } return(contexta); }
/// <summary> /// Initializes a new instance of the <see cref="MySqlTableOrViewMetadata" /> class. /// </summary> /// <param name="metadataCache">The metadata cache.</param> /// <param name="name">The name.</param> /// <param name="isTable">if set to <c>true</c> is a table.</param> /// <param name="columns">The columns.</param> /// <param name="engine">The engine.</param> internal MySqlTableOrViewMetadata(DatabaseMetadataCache <MySqlObjectName, MySqlDbType> metadataCache, MySqlObjectName name, bool isTable, ColumnMetadataCollection <MySqlDbType> columns, string?engine) : base(metadataCache, name, isTable, columns) { Engine = engine; }
/// <summary> /// Initializes a new instance of the <see cref="SqlServerTableOrViewMetadata{TDbType}" /> class. /// </summary> /// <param name="metadataCache">The metadata cache.</param> /// <param name="name">The name.</param> /// <param name="isTable">if set to <c>true</c> is a table.</param> /// <param name="columns">The columns.</param> /// <param name="hasTriggers">if set to <c>true</c> has triggers.</param> public SqlServerTableOrViewMetadata(DatabaseMetadataCache <SqlServerObjectName, TDbType> metadataCache, SqlServerObjectName name, bool isTable, ColumnMetadataCollection <TDbType> columns, bool hasTriggers) : base(metadataCache, name, isTable, columns) { HasTriggers = hasTriggers; }
/// <summary> /// Initializes a new instance of the <see cref="TableOrViewMetadata{TObjectName, TDbType}"/> class. /// </summary> /// <param name="metadataCache">The metadata cache.</param> /// <param name="name">The name.</param> /// <param name="isTable">if set to <c>true</c> [is table].</param> /// <param name="columns">The columns.</param> public TableOrViewMetadata(DatabaseMetadataCache <TObjectName, TDbType> metadataCache, TObjectName name, bool isTable, ColumnMetadataCollection <TDbType> columns) : base(name.ToString() !, isTable, columns?.GenericCollection !)