ISource接口
代碼
using System;
using System.Collections.Generic;
namespace FaibClass.SourcePackage
{
/// <summary>
/// 提供數(shù)據(jù)源接口。
/// </summary>
public interface ISource : BasePackage.IPackage, IDisposable
{
/// <summary>
/// 打開獲取數(shù)據(jù)源的對話框。
/// </summary>
/// <param name="option"></param>
/// <returns>如果打開失敗返回false。</returns>
bool Open(SourceOptions option);
/// <summary>
/// 打開數(shù)據(jù)源地址。
/// </summary>
/// <param name="option"></param>
/// <param name="url"></param>
void Open(SourceOptions option, string url);
/// <summary>
/// 獲取歷史列表。
/// </summary>
/// <returns></returns>
Dictionary<string, object> GetRecentHistory();
/// <summary>
/// 表集合。
/// </summary>
Collection<ITable> Tables { get; }
string Schema { get; }
/// <summary>
/// 獲取當(dāng)前數(shù)據(jù)源中的所有表集合。
/// </summary>
void GetTables();
/// <summary>
/// 獲取表的個(gè)數(shù)。
/// </summary>
/// <returns></returns>
int GetTableCount();
/// <summary>
/// 獲取數(shù)據(jù)類型。
/// </summary>
string DbType { get; }
/// <summary>
/// 用到的枚舉集合。
/// </summary>
Collection<DbEnum> Enums { get; }
/// <summary>
/// 獲取到表時(shí)觸發(fā)事件。
/// </summary>
event GetTableEventHandler GetTable;
string OutputFolder { get; set; }
ITable CreateTable(string name);
}
public delegate bool GetTableEventHandler(ITable table);
}
using System.Collections.Generic;
namespace FaibClass.SourcePackage
{
/// <summary>
/// 提供數(shù)據(jù)源接口。
/// </summary>
public interface ISource : BasePackage.IPackage, IDisposable
{
/// <summary>
/// 打開獲取數(shù)據(jù)源的對話框。
/// </summary>
/// <param name="option"></param>
/// <returns>如果打開失敗返回false。</returns>
bool Open(SourceOptions option);
/// <summary>
/// 打開數(shù)據(jù)源地址。
/// </summary>
/// <param name="option"></param>
/// <param name="url"></param>
void Open(SourceOptions option, string url);
/// <summary>
/// 獲取歷史列表。
/// </summary>
/// <returns></returns>
Dictionary<string, object> GetRecentHistory();
/// <summary>
/// 表集合。
/// </summary>
Collection<ITable> Tables { get; }
string Schema { get; }
/// <summary>
/// 獲取當(dāng)前數(shù)據(jù)源中的所有表集合。
/// </summary>
void GetTables();
/// <summary>
/// 獲取表的個(gè)數(shù)。
/// </summary>
/// <returns></returns>
int GetTableCount();
/// <summary>
/// 獲取數(shù)據(jù)類型。
/// </summary>
string DbType { get; }
/// <summary>
/// 用到的枚舉集合。
/// </summary>
Collection<DbEnum> Enums { get; }
/// <summary>
/// 獲取到表時(shí)觸發(fā)事件。
/// </summary>
event GetTableEventHandler GetTable;
string OutputFolder { get; set; }
ITable CreateTable(string name);
}
public delegate bool GetTableEventHandler(ITable table);
}
ITable接口
代碼
using System.ComponentModel;
using System.Drawing.Design;
namespace FaibClass.SourcePackage
{
/// <summary>
/// 提供與數(shù)據(jù)表對應(yīng)的接口。
/// </summary>
public interface ITable
{
/// <summary>
/// 獲取該表的所有字段。
/// </summary>
/// <returns></returns>
Collection<IColumn> Columns { get; }
/// <summary>
/// 表的名稱。
/// </summary>
string Name { get; set; }
/// <summary>
/// 對應(yīng)類的名稱。
/// </summary>
string ClassName { get; set; }
/// <summary>
/// 表的說明。
/// </summary>
string Description { get; set; }
/// <summary>
/// 與之關(guān)聯(lián)的外鍵。
/// </summary>
Collection<IForeignKey> SubKeys { get; }
/// <summary>
/// 主鍵。
/// </summary>
Collection<IPrimaryKey> PrimaryKeys { get; }
/// <summary>
/// 外鍵。
/// </summary>
Collection<IForeignKey> ForeignKeys { get; }
/// <summary>
/// 數(shù)據(jù)源對象。
/// </summary>
ISource Owner { get; }
/// <summary>
/// 是否選中。
/// </summary>
bool Checked { get; set; }
/// <summary>
/// 依存關(guān)系。
/// </summary>
ReferenceGroup Reference { get; }
/// <summary>
/// 繼承的表。
/// </summary>
ITable Parent { get; set; }
IColumn CreateColumn(string name);
}
}
using System.Drawing.Design;
namespace FaibClass.SourcePackage
{
/// <summary>
/// 提供與數(shù)據(jù)表對應(yīng)的接口。
/// </summary>
public interface ITable
{
/// <summary>
/// 獲取該表的所有字段。
/// </summary>
/// <returns></returns>
Collection<IColumn> Columns { get; }
/// <summary>
/// 表的名稱。
/// </summary>
string Name { get; set; }
/// <summary>
/// 對應(yīng)類的名稱。
/// </summary>
string ClassName { get; set; }
/// <summary>
/// 表的說明。
/// </summary>
string Description { get; set; }
/// <summary>
/// 與之關(guān)聯(lián)的外鍵。
/// </summary>
Collection<IForeignKey> SubKeys { get; }
/// <summary>
/// 主鍵。
/// </summary>
Collection<IPrimaryKey> PrimaryKeys { get; }
/// <summary>
/// 外鍵。
/// </summary>
Collection<IForeignKey> ForeignKeys { get; }
/// <summary>
/// 數(shù)據(jù)源對象。
/// </summary>
ISource Owner { get; }
/// <summary>
/// 是否選中。
/// </summary>
bool Checked { get; set; }
/// <summary>
/// 依存關(guān)系。
/// </summary>
ReferenceGroup Reference { get; }
/// <summary>
/// 繼承的表。
/// </summary>
ITable Parent { get; set; }
IColumn CreateColumn(string name);
}
}
IColumn接口
代碼
using System.ComponentModel;
namespace FaibClass.SourcePackage
{
/// <summary>
/// 提供與字段對應(yīng)的接口。
/// </summary>
public interface IColumn
{
/// <summary>
/// 該字段的名稱。
/// </summary>
string Name { get; set; }
/// <summary>
/// 對應(yīng)屬性的名稱。
/// </summary>
string PropertyName { get; set; }
/// <summary>
/// 該字段的說明。
/// </summary>
string Description { get; set; }
/// <summary>
/// 該字段的數(shù)據(jù)類型。
/// </summary>
string DataType { get; set; }
/// <summary>
/// 該字段的屬性數(shù)據(jù)類型。
/// </summary>
string PropertyType { get; set; }
/// <summary>
/// 該字段的長度。
/// </summary>
long ? Length { get; set; }
/// <summary>
/// 該字段的默認(rèn)值。
/// </summary>
string DefaultValue { get; set; }
/// <summary>
/// 該字段的小數(shù)位數(shù)。
/// </summary>
int ? Scale { get; set; }
/// <summary>
/// 該字段的精度。
/// </summary>
int ? Precision { get; set; }
/// <summary>
/// 該字段是否可為空。
/// </summary>
bool IsNullable { get; set; }
/// <summary>
/// 該字段是否自動生成。
/// </summary>
bool AutoGenerate { get; set; }
/// <summary>
/// 該字段對應(yīng)的主鍵。
/// </summary>
IPrimaryKey PrimaryKey { get; set; }
/// <summary>
/// 該字段對應(yīng)的外鍵。
/// </summary>
IForeignKey ForeignKey { get; set; }
/// <summary>
/// 對應(yīng)的枚舉。
/// </summary>
DbEnum Enum { get; set; }
/// <summary>
/// 用當(dāng)前字段創(chuàng)建主鍵。
/// </summary>
/// <returns></returns>
IPrimaryKey CreatePrimaryKey();
/// <summary>
/// 表對象。
/// </summary>
ITable Owner { get; }
/// <summary>
/// 綁定外鍵。
/// </summary>
/// <param name="table">主表。</param>
/// <param name="column">主鍵。</param>
/// <returns></returns>
IForeignKey BindForeignKey(ITable table, IColumn column);
/// <summary>
/// 是否選中。
/// </summary>
bool Checked { get; set; }
}
}
namespace FaibClass.SourcePackage
{
/// <summary>
/// 提供與字段對應(yīng)的接口。
/// </summary>
public interface IColumn
{
/// <summary>
/// 該字段的名稱。
/// </summary>
string Name { get; set; }
/// <summary>
/// 對應(yīng)屬性的名稱。
/// </summary>
string PropertyName { get; set; }
/// <summary>
/// 該字段的說明。
/// </summary>
string Description { get; set; }
/// <summary>
/// 該字段的數(shù)據(jù)類型。
/// </summary>
string DataType { get; set; }
/// <summary>
/// 該字段的屬性數(shù)據(jù)類型。
/// </summary>
string PropertyType { get; set; }
/// <summary>
/// 該字段的長度。
/// </summary>
long ? Length { get; set; }
/// <summary>
/// 該字段的默認(rèn)值。
/// </summary>
string DefaultValue { get; set; }
/// <summary>
/// 該字段的小數(shù)位數(shù)。
/// </summary>
int ? Scale { get; set; }
/// <summary>
/// 該字段的精度。
/// </summary>
int ? Precision { get; set; }
/// <summary>
/// 該字段是否可為空。
/// </summary>
bool IsNullable { get; set; }
/// <summary>
/// 該字段是否自動生成。
/// </summary>
bool AutoGenerate { get; set; }
/// <summary>
/// 該字段對應(yīng)的主鍵。
/// </summary>
IPrimaryKey PrimaryKey { get; set; }
/// <summary>
/// 該字段對應(yīng)的外鍵。
/// </summary>
IForeignKey ForeignKey { get; set; }
/// <summary>
/// 對應(yīng)的枚舉。
/// </summary>
DbEnum Enum { get; set; }
/// <summary>
/// 用當(dāng)前字段創(chuàng)建主鍵。
/// </summary>
/// <returns></returns>
IPrimaryKey CreatePrimaryKey();
/// <summary>
/// 表對象。
/// </summary>
ITable Owner { get; }
/// <summary>
/// 綁定外鍵。
/// </summary>
/// <param name="table">主表。</param>
/// <param name="column">主鍵。</param>
/// <returns></returns>
IForeignKey BindForeignKey(ITable table, IColumn column);
/// <summary>
/// 是否選中。
/// </summary>
bool Checked { get; set; }
}
}
IPrimaryKey接口
代碼
using System.Drawing.Design;
using System.ComponentModel;
namespace FaibClass.SourcePackage
{
/// <summary>
/// 提供與主鍵對接的接口。
/// </summary>
public interface IPrimaryKey
{
/// <summary>
/// 主鍵的對應(yīng)的列。
/// </summary>
IColumn Column { get; }
}
}
using System.ComponentModel;
namespace FaibClass.SourcePackage
{
/// <summary>
/// 提供與主鍵對接的接口。
/// </summary>
public interface IPrimaryKey
{
/// <summary>
/// 主鍵的對應(yīng)的列。
/// </summary>
IColumn Column { get; }
}
}
IForeignKey接口
代碼
using System.Drawing.Design;
using System.ComponentModel;
namespace FaibClass.SourcePackage
{
/// <summary>
/// 提供與外鍵對接的接口。
/// </summary>
public interface IForeignKey
{
/// <summary>
/// 外表的名稱。
/// </summary>
ITable FK_Table { get; }
/// <summary>
/// 外表字段的名稱。
/// </summary>
IColumn FK_Column { get; }
/// <summary>
/// 主表的名稱。
/// </summary>
ITable PK_Table { get; }
/// <summary>
/// 主表字段的名稱。
/// </summary>
IColumn PK_Column { get; }
/// <summary>
/// 級聯(lián)更新。
/// </summary>
bool CascadeUpdate { get; set; }
/// <summary>
/// 級聯(lián)刪除。
/// </summary>
bool CascadeDelete { get; set; }
}
}
using System.ComponentModel;
namespace FaibClass.SourcePackage
{
/// <summary>
/// 提供與外鍵對接的接口。
/// </summary>
public interface IForeignKey
{
/// <summary>
/// 外表的名稱。
/// </summary>
ITable FK_Table { get; }
/// <summary>
/// 外表字段的名稱。
/// </summary>
IColumn FK_Column { get; }
/// <summary>
/// 主表的名稱。
/// </summary>
ITable PK_Table { get; }
/// <summary>
/// 主表字段的名稱。
/// </summary>
IColumn PK_Column { get; }
/// <summary>
/// 級聯(lián)更新。
/// </summary>
bool CascadeUpdate { get; set; }
/// <summary>
/// 級聯(lián)刪除。
/// </summary>
bool CascadeDelete { get; set; }
}
}
IDataExtendObject接口
代碼
using System;
using System.Reflection;
using System.Collections;
using System.ComponentModel;
using FaibClass.BasePackage;
namespace FaibClass.SourcePackage
{
public interface IDataExtendObject : IPackage
{
IDataExtendProvider Owner { set; get; }
ExtendFor For { get; }
}
public interface IDataExtendProvider
{
IDataExtendObject ExtendObject { get; set; }
Hashtable TemporaryVariable { get; }
}
}
using System.Reflection;
using System.Collections;
using System.ComponentModel;
using FaibClass.BasePackage;
namespace FaibClass.SourcePackage
{
public interface IDataExtendObject : IPackage
{
IDataExtendProvider Owner { set; get; }
ExtendFor For { get; }
}
public interface IDataExtendProvider
{
IDataExtendObject ExtendObject { get; set; }
Hashtable TemporaryVariable { get; }
}
}

浙公網(wǎng)安備 33010602011771號