将Sql Server Computed Column排除在同步之外

时间:2015-05-27 14:57:14

标签: c# sql-server microsoft-sync-framework calculated-columns

我一直在做一个项目,我有一个带有计算列的表。当我开始同步时,它说:

The column "TotalAmount" cannot be modified because it is either a computed column or is the result of a UNION operator

我想将此列排除在同步之外。

我正在使用C#和Sql Server 2008 R2。

表定义:

CREATE TABLE [dbo].[tblFeeDetails](
    [RecordId] [bigint] IDENTITY(1,1) NOT NULL,
    [SessionId] [int] NOT NULL,
    [CourseId] [int] NOT NULL,
    [FormNumber] [nvarchar](50) NOT NULL,
    [CourseFee] [money] NOT NULL,
    [OtherCharges] [money] NOT NULL,
    [LateFee] [money] NOT NULL,
    [TotalAmount]  AS (([CourseFee]+[OtherCharges])+[LateFee]) PERSISTED,
    [Status] [bit] NOT NULL
)

2 个答案:

答案 0 :(得分:0)

您正在使用SqlSyncAdapterBuilder,对吗?使用它,您可以指定要跟踪的列。

答案 1 :(得分:0)

我假设您正在使用GetDescriptionForTable来检索架构。

您可以从表描述Columns集合中删除该列,也可以手动指定要包含在GetDescriptionForTable中的列...

如,

// CustomerContact的定义,包括要包含的列的列表。 Collection columnsToInclude = new Collection();

columnsToInclude.Add( “客户ID”);

columnsToInclude.Add( “PHONETYPE”);

DbSyncTableDescription customerContactDescription =     SqlSyncDescriptionBuilder.GetDescriptionForTable(“Sales.CustomerContact”,columnsToInclude,serverConn);