/// <summary> /// /// </summary> /// <typeparam name="TEntity"></typeparam> /// <param name="dbContext"></param> /// <param name="queryString"></param> /// <param name="parameters"></param> /// <returns></returns> public static ObjectQuery <TEntity> CreateQuery <TEntity>( this RdbContext dbContext, string queryString, params ObjectParameter[] parameters) where TEntity : class { dbContext.Set <TEntity>(); return(((IObjectContextAdapter)dbContext).ObjectContext.CreateQuery <TEntity>(queryString, parameters)); }
/// <summary> /// Disposes the object. /// </summary> /// <param name="disposing">A <see cref="System.Boolean"/> value which indicates whether /// the object should be disposed explicitly.</param> protected override void Dispose(bool disposing) { if (!disposing) { return; } if (_efContext != null) { _efContext.Dispose(); _efContext = null; } base.Dispose(true); }
/// <summary> /// Used to get the current NHibernate session associated with a factory key; i.e., the key /// associated with an NHibernate session factory for a specific database. /// </summary> public static RdbContext CreateDbContext(IAcDomain acDomain, string efDbContextName) { if (string.IsNullOrEmpty(efDbContextName)) { throw new ArgumentNullException(efDbContextName, @"objectContextKey may not be null or empty"); } // alert:这里有个约定 Engine.Rdb.RdbDescriptor db; string databaseKey = efDbContextName + "DatabaseId"; Guid databaseId; if (!Guid.TryParse(ConfigurationManager.AppSettings[databaseKey], out databaseId)) { throw new AnycmdException("DatabaseId应是Guid格式"); } if (!acDomain.Rdbs.TryDb(databaseId, out db)) { throw new AnycmdException("意外的" + databaseKey + ":" + databaseId); } var efDbContext = new RdbContext(db, string.Format(ConfigurationManager.ConnectionStrings[efDbContextName].ConnectionString, db.ConnString)); return efDbContext; }
/// <summary> /// Used to get the current NHibernate session associated with a factory key; i.e., the key /// associated with an NHibernate session factory for a specific database. /// </summary> public static RdbContext CreateDbContext(IAcDomain acDomain, string efDbContextName) { if (string.IsNullOrEmpty(efDbContextName)) { throw new ArgumentNullException(efDbContextName, @"objectContextKey may not be null or empty"); } // alert:这里有个约定 Engine.Rdb.RdbDescriptor db; string databaseKey = efDbContextName + "DatabaseId"; Guid databaseId; if (!Guid.TryParse(ConfigurationManager.AppSettings[databaseKey], out databaseId)) { throw new AnycmdException("DatabaseId应是Guid格式"); } if (!acDomain.Rdbs.TryDb(databaseId, out db)) { throw new AnycmdException("意外的" + databaseKey + ":" + databaseId); } var efDbContext = new RdbContext(db, string.Format(ConfigurationManager.ConnectionStrings[efDbContextName].ConnectionString, db.ConnString)); return(efDbContext); }