示例#1
0
 public IConfiguration SetDefaultChangeTrackingMode(ChangeTrackingMode value)
 {
     if (value != ChangeTrackingMode.Default)
     {
         _defaultChangeTrackingMode = value;
     }
     return(this);
 }
        /// <summary>
        /// Converts the <see cref="Xtensive.Sql.Model.ChangeTrackingMode"/> to <see cref="Xtensive.Orm.FullTextChangeTrackingMode"/>.
        /// </summary>
        /// <param name="toConvert">The mode to convert.</param>
        /// <returns>Converted mode.</returns>
        private FullTextChangeTrackingMode ConvertChangeTrackingMode(ChangeTrackingMode toConvert)
        {
            switch (toConvert)
            {
            case ChangeTrackingMode.Auto:
                return(FullTextChangeTrackingMode.Auto);

            case ChangeTrackingMode.Manual:
                return(FullTextChangeTrackingMode.Manual);

            case ChangeTrackingMode.Off:
                return(FullTextChangeTrackingMode.Off);

            case ChangeTrackingMode.OffWithNoPopulation:
                return(FullTextChangeTrackingMode.OffWithNoPopulation);

            default:
                return(FullTextChangeTrackingMode.Default);
            }
        }
        protected virtual string TranslateChangeTrackingMode(ChangeTrackingMode mode)
        {
            switch (mode)
            {
            case ChangeTrackingMode.Auto:
                return("AUTO");

            case ChangeTrackingMode.Manual:
                return("MANUAL");

            case ChangeTrackingMode.Off:
                return("OFF");

            case ChangeTrackingMode.OffWithNoPopulation:
                return("OFF, NO POPULATION");

            default:
                return("AUTO");
            }
        }
示例#4
0
        private ObjectScope(object item = null, bool autoCommit = false, ChangeTrackingMode mode = ChangeTrackingMode.Default, Type type = null, DbConnection connection = null, IConfiguration config = null)
        {
            if (item == null && type == null)
            {
                throw new ArgumentException("Invalid ObjectScope definition");
            }

            if (item != null)
            {
                item.CheckReadOnly();
            }

            AutoCommit     = autoCommit;
            IsNew          = item == null;
            ItemType       = type;
            Configuration  = config;
            ChangeTracking = mode != ChangeTrackingMode.Default ? mode : ConfigurationFactory.Get(type).DefaultChangeTrackingMode;
            if (!IsNew)
            {
                if (type == null)
                {
                    ItemType = item.GetType();
                }
                Item         = item;
                ItemSnapshot = CreateSnapshot(item);
            }
            Scopes.Push(this);
            if (connection == null || connection.State != ConnectionState.Open)
            {
                Transaction = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions {
                    IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted
                });
            }
            else
            {
                Connection = connection;
            }
        }
示例#5
0
 public IConfiguration SetDefaultChangeTrackingMode(ChangeTrackingMode value)
 {
     if (value != ChangeTrackingMode.Default)
     {
         _defaultChangeTrackingMode = value;
     }
     return this;
 }
示例#6
0
 internal FullTextIndex(DataTable dataTable, string name)
     : base(dataTable, name)
 {
     changeTrackingMode = ChangeTrackingMode.Auto;
 }
示例#7
0
 public static ObjectScope New <T>(T item = null, bool autoCommit = false, ChangeTrackingMode mode = ChangeTrackingMode.Default, DbConnection connection = null)
     where T : class
 {
     return(new ObjectScope(item, autoCommit, mode, typeof(T), connection));
 }