TableCreationOption 列挙体
クライアント データベースにテーブルを作成するときに使用できるオプションを定義します。
名前空間: Microsoft.Synchronization.Data
アセンブリ: Microsoft.Synchronization.Data (microsoft.synchronization.data.dll 内)
構文
'宣言
Public Enumeration TableCreationOption
'使用
Dim instance As TableCreationOption
public enum TableCreationOption
public enum class TableCreationOption
public enum TableCreationOption
public enum TableCreationOption
メンバー
メンバー名 | 説明 | |
---|---|---|
CreateNewTableOrFail | クライアント データベースにテーブルを作成します。同名の既存のテーブルがある場合は、例外をスローします。 | |
DropExistingOrCreateNewTable | クライアント データベースにテーブルを作成します。同名の既存のテーブルがある場合は、まず既存のテーブルを削除します。 | |
TruncateExistingOrCreateNewTable | 同名のテーブルが存在しない場合は、クライアント データベースにテーブルを作成します。同名の既存のテーブルがある場合は、このテーブルからすべての行を削除します。 | |
UploadExistingOrCreateNewTable | 同名のテーブルが存在しない場合は、クライアント データベースにテーブルを作成します。同名の既存のテーブルがある場合は、最初の同期でこのテーブルからすべての行をアップロードします。このオプションは、SyncDirection が Bidirectional または UploadOnly の場合にのみ有効です。 | |
UseExistingTableOrFail | クライアント データベース内の、同名の既存のテーブルを使用します。テーブルが存在しない場合は、例外をスローします。 |
解説
特にデータベースにある同名の既存のテーブルに関連する場合に、TableCreationOption プロパティによってクライアント データベースのテーブル作成の処理方法が決定されます。詳細については、「クライアント データベースを初期化してテーブル スキーマを操作する方法」を参照してください。
例
次のコード例では、SyncAgent から派生するクラスを示します。このコードでは、2 つの同期グループおよび 3 つの同期テーブルが作成されます。Customer
テーブルは Customer
グループに追加され、OrderHeader
テーブルおよび OrderDetail
テーブルは Order
グループに追加されます。テーブルはすべてダウンロードのみです。テーブルがクライアントに存在すると、テーブルは最初の同期中にいったん削除してから再作成されます。完全なコンテキスト例でこのコードを表示するには、「行および列をフィルター選択する方法」を参照してください。
//Create two SyncGroups so that changes to OrderHeader
//and OrderDetail are made in one transaction. Depending on
//application requirements, you might include Customer
//in the same group.
SyncGroup customerSyncGroup = new SyncGroup("Customer");
SyncGroup orderSyncGroup = new SyncGroup("Order");
//Add each table: specify a synchronization direction of
//DownloadOnly.
SyncTable customerSyncTable = new SyncTable("Customer");
customerSyncTable.CreationOption = TableCreationOption.DropExistingOrCreateNewTable;
customerSyncTable.SyncDirection = SyncDirection.DownloadOnly;
customerSyncTable.SyncGroup = customerSyncGroup;
this.Configuration.SyncTables.Add(customerSyncTable);
SyncTable orderHeaderSyncTable = new SyncTable("OrderHeader");
orderHeaderSyncTable.CreationOption = TableCreationOption.DropExistingOrCreateNewTable;
orderHeaderSyncTable.SyncDirection = SyncDirection.DownloadOnly;
orderHeaderSyncTable.SyncGroup = orderSyncGroup;
this.Configuration.SyncTables.Add(orderHeaderSyncTable);
SyncTable orderDetailSyncTable = new SyncTable("OrderDetail");
orderDetailSyncTable.CreationOption = TableCreationOption.DropExistingOrCreateNewTable;
orderDetailSyncTable.SyncDirection = SyncDirection.DownloadOnly;
orderDetailSyncTable.SyncGroup = orderSyncGroup;
this.Configuration.SyncTables.Add(orderDetailSyncTable);
'Create two SyncGroups so that changes to OrderHeader
'and OrderDetail are made in one transaction. Depending on
'application requirements, you might include Customer
'in the same group.
Dim customerSyncGroup As New SyncGroup("Customer")
Dim orderSyncGroup As New SyncGroup("Order")
'Add each table: specify a synchronization direction of
'DownloadOnly.
Dim customerSyncTable As New SyncTable("Customer")
customerSyncTable.CreationOption = TableCreationOption.DropExistingOrCreateNewTable
customerSyncTable.SyncDirection = SyncDirection.DownloadOnly
customerSyncTable.SyncGroup = customerSyncGroup
Me.Configuration.SyncTables.Add(customerSyncTable)
Dim orderHeaderSyncTable As New SyncTable("OrderHeader")
orderHeaderSyncTable.CreationOption = TableCreationOption.DropExistingOrCreateNewTable
orderHeaderSyncTable.SyncDirection = SyncDirection.DownloadOnly
orderHeaderSyncTable.SyncGroup = orderSyncGroup
Me.Configuration.SyncTables.Add(orderHeaderSyncTable)
Dim orderDetailSyncTable As New SyncTable("OrderDetail")
orderDetailSyncTable.CreationOption = TableCreationOption.DropExistingOrCreateNewTable
orderDetailSyncTable.SyncDirection = SyncDirection.DownloadOnly
orderDetailSyncTable.SyncGroup = orderSyncGroup
Me.Configuration.SyncTables.Add(orderDetailSyncTable)