public Employees(IDBDatabase database) : base(database) { Name = "Employees"; KeyPath = "id"; AutoIncrement = true; FirstName = new IDBIndex(this, "firstName", "firstName"); LastName = new IDBIndex(this, "lastName", "lastName"); FullName = new IDBIndex(this, "fullName", "firstName,lastName"); }
/// <summary> /// 创建IDBDatabase /// </summary> /// <param name="strConnection">Connection的全称</param> /// <returns>创建的IDBDatabase</returns> public static IDBDatabase CreateDatabase(String strConnection) { List <DBProvider> list = Database.DBProvider.ProviderList; DBProvider dbProvider = list.Find(delegate(DBProvider x) { return(x.Connection.FullName == strConnection); }); if (dbProvider == null) { return(null); } IDBDatabase db = CreateDatabase(dbProvider); return(db); }
/// <summary> /// 创建IDBDatabase /// </summary> /// <param name="providerFactory">表示一组方法,这些方法用于创建提供程序对数据源类的实现的实例</param> /// <returns>创建的IDBDatabase</returns> public static IDBDatabase CreateDatabase(DbProviderFactory providerFactory) { DBProvider dbProvider = new DBProvider(); using (DbConnection cnn = providerFactory.CreateConnection()) using (DbCommand cmd = providerFactory.CreateCommand()) using (DbCommandBuilder cmdBuilder = providerFactory.CreateCommandBuilder()) using (DbDataAdapter adapter = providerFactory.CreateDataAdapter()) { DbParameter param = providerFactory.CreateParameter(); dbProvider.Connection = cnn.GetType(); dbProvider.Command = cmd.GetType(); dbProvider.Parameter = param.GetType(); dbProvider.CommandBuilder = cmdBuilder.GetType(); dbProvider.DataAdapter = adapter.GetType(); } IDBDatabase db = CreateDatabase(dbProvider); return(db); }
/// <summary> /// 创建IDBDatabase /// </summary> /// <param name="dbProvider">数据库驱动提供者</param> /// <returns>创建的IDBDatabase</returns> public static IDBDatabase CreateDatabase(DBProvider dbProvider) { Type type = DbDatabase.MakeGenericType(dbProvider.Connection, dbProvider.Command, dbProvider.Parameter, dbProvider.DataAdapter, dbProvider.CommandBuilder); IDBDatabase db = Activator.CreateInstance(type) as IDBDatabase; String strCnnName = dbProvider.Connection.FullName.ToUpper(); if (strCnnName.Contains(".OLEDB.") || strCnnName.Contains(".ODBC.")) { db.ParameterDerive = DBUnnamedParameterDerive.Instance; } else if (strCnnName.Contains("ORACLE")) { db.ParameterDerive = DBOracleParameterDerive.Instance; } else { db.ParameterDerive = DBNamedParameterDerive.Instance; } return(db); }