/// <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);
 }
Example #3
0
        /// <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;
        }
Example #4
0
        /// <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);
        }