public static FbValueGenerationStrategy GetValueGenerationStrategy(this IMutableProperty property) { var annotation = property[FbAnnotationNames.ValueGenerationStrategy]; if (annotation != null) { return((FbValueGenerationStrategy)annotation); } if (property.ValueGenerated != ValueGenerated.OnAdd || property.GetDefaultValue() != null || property.GetDefaultValueSql() != null || property.GetComputedColumnSql() != null) { return(FbValueGenerationStrategy.None); } var modelStrategy = property.DeclaringEntityType.Model.GetValueGenerationStrategy(); if (modelStrategy == FbValueGenerationStrategy.SequenceTrigger && IsCompatibleSequenceTrigger(property)) { return(FbValueGenerationStrategy.SequenceTrigger); } if (modelStrategy == FbValueGenerationStrategy.IdentityColumn && IsCompatibleIdentityColumn(property)) { return(FbValueGenerationStrategy.IdentityColumn); } return(FbValueGenerationStrategy.None); }