示例#1
0
 /// <inheritdoc/>
 public void InitDatabaseForIdGenerator()
 {
     using (Kros.Data.IIdGenerator idGenerator = _queryProvider.CreateIdGenerator("DummyTableName", 1))
     {
         idGenerator.InitDatabaseForIdGenerator();
     }
 }
示例#2
0
        private void GenerateCustomPrimaryKeys(HashSet <T> items)
        {
            if (CanGeneratePrimaryKeys())
            {
                var primaryKey = _tableInfo.PrimaryKey.Single(p => p.AutoIncrementMethodType == AutoIncrementMethodType.Custom);

                using (var generator = _provider.CreateIdGenerator(_tableInfo.Name, items.Count))
                {
                    foreach (T item in items)
                    {
                        if ((int)primaryKey.GetValue(item) == 0)
                        {
                            primaryKey.SetValue(item, generator.GetNext());
                        }
                    }
                }
            }
        }
示例#3
0
 private void GenerateCustomPrimaryKeys(HashSet <T> items)
 {
     if (CanGeneratePrimaryKeys(out ColumnInfo primaryKey))
     {
         Type   dataType      = primaryKey.PropertyInfo.PropertyType;
         string generatorName = primaryKey.AutoIncrementGeneratorName ?? _tableInfo.Name;
         using (var generator = _provider.CreateIdGenerator(dataType, generatorName, items.Count))
         {
             foreach (T item in items)
             {
                 var currentValue = primaryKey.GetValue(item);
                 if (primaryKey.IsDefaultValue(currentValue))
                 {
                     primaryKey.SetValue(item, generator.GetNext());
                 }
             }
         }
     }
 }