1 //---------------------------------------------------------------------
2 // <copyright file="PropagatorFlags.cs" company="Microsoft">
3 //      Copyright (c) Microsoft Corporation.  All rights reserved.
4 // </copyright>
5 //
6 // @owner cmeek
7 // @backupOwner pratikp
8 //---------------------------------------------------------------------
9 
10 namespace System.Data.Mapping.Update.Internal
11 {
12     /// <summary>
13     /// Tracks roles played by a record as it propagates
14     /// w.r.t. an update mapping view.
15     /// </summary>
16     [Flags]
17     internal enum PropagatorFlags : byte
18     {
19         /// <summary>
20         /// No role.
21         /// </summary>
22         NoFlags = 0,
23         /// <summary>
24         /// Value is unchanged. Used only for attributes that appear in updates (in other words,
25         /// in both delete and insert set).
26         /// </summary>
27         Preserve = 1,
28         /// <summary>
29         /// Value is a concurrency token. Placeholder for post Beta 2 work.
30         /// </summary>
31         ConcurrencyValue = 2,
32         /// <summary>
33         /// Value is unknown. Used only for attributes that appear in updates (in other words,
34         /// in both delete and insert set).
35         /// </summary>
36         Unknown = 8,
37         /// <summary>
38         /// Value is a key, and therefore a concurrency value, but it is shared so it
39         /// only needs to be checked in a single table (in the case of entity splitting)
40         /// </summary>
41         Key = 16,
42         /// <summary>
43         /// Value is a foreign key.
44         /// </summary>
45         ForeignKey = 32,
46     }
47 }