private List <(string tableName, string conString, DatabaseType dbType)> GetTargetTables (string absTableName, ReadWriteType opType, string absDbName, object obj = null) { //获取抽象数据库 AbstractDatabase db = null; if (absDbName.IsNullOrEmpty()) { db = _absDb.Single(); } else { db = _absDb.Where(x => x.AbsDbName == absDbName).Single(); } if (db == null) { throw new Exception("请配置抽象数据库"); } //获取抽象数据表 var absTable = db.Tables.Where(x => x.AbsTableName == absDbName).Single(); //获取物理表 List <(string physicTableName, string dataSourceName)> physicTables = null; //读操作获取全部表 if (opType == ReadWriteType.Read) { physicTables = absTable.PhysicTables; } else { //找特定表 if (!obj.IsNullOrEmpty()) { var theTable = absTable.FindTable(obj); physicTables = absTable.PhysicTables.Where(x => x.physicTableName == theTable).ToList(); } //所有表 else { physicTables = absTable.PhysicTables; } } //获取数据源 var dataSources = _dataSource .Where(x => physicTables.Select(y => y.dataSourceName).Contains(x.DataSourceName)) .Select(x => new { x.DataSourceName, x.DbType, RandomHelper.Next(x.Dbs.Where(y => y.opType.HasFlag(opType)).ToList()).conString }) .ToList(); var q = from a in physicTables join b in dataSources on a.dataSourceName equals b.DataSourceName select(a.physicTableName, b.conString, b.DbType); var resList = q.ToList(); return(resList); }
public IConfigInit AddPhysicDb(ReadWriteType opType, string conString, string groupName = "BaseDbGroup") { _physicDbs.Add(new PhysicDb { ConString = conString, GroupName = groupName, OpType = opType }); return(this); }
public void addSendBuffer(ReadWriteType readWriteType, byte[] data) { UdpData pData = new UdpData(); if (readWriteType == ReadWriteType.WRITE_AGV_D600) { pData.length = CmdOmlonWriteData(pData.buffer, byPlcDot, localDot, 601, 1, data, OMLONADDRESS.D); } Console.WriteLine(pData.buffer); //Queue<T> 不是线程安全的 lock (sendDataLock) { sendDataList.Enqueue(pData); } }
void IAddPhysicDb.AddPhsicDb(string conString, ReadWriteType opType) { _physicDbs.Add((conString, opType)); }
public ReadWriteAttribute(ReadWriteType readWriteType, Type type) { ReadWriteType = readWriteType; Type = type; }