我一直在做一个项目,我有一个带有计算列的表。当我开始同步时,它说:
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
)
答案 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);