Esempio n. 1
0
    /// <summary>
    /// 有指定数据库索引的名称(格式:EntityName+PropertyNames+Index)。
    /// </summary>
    /// <param name="indexBuilder">给定的 <see cref="IndexBuilder"/>。</param>
    /// <param name="nameFunc">给定的名称方法(可选)。</param>
    /// <returns>返回 <see cref="IndexBuilder"/>。</returns>
    public static IndexBuilder HasDatabaseName(this IndexBuilder indexBuilder,
                                               Func <string, string>?nameFunc = null)
    {
        var sb = new StringBuilder();

        // Prefix: EntityBodyName
        sb.Append(indexBuilder.Metadata.DeclaringEntityType.ClrType.Name);

        foreach (var property in indexBuilder.Metadata.Properties)
        {
            sb.Append(property.Name);
        }

        // Suffix: Index
        sb.Append("Index");

        var name = sb.ToString();

        return(indexBuilder.HasDatabaseName(nameFunc?.Invoke(name) ?? name));
    }
 public static IndexBuilder <TEntity> HasName <TEntity>(this IndexBuilder <TEntity> indexBuilder, string?name)
 => indexBuilder.HasDatabaseName(name);
Esempio n. 3
0
 public static IndexBuilder <TEntity> HasName <TEntity>([NotNull] this IndexBuilder <TEntity> indexBuilder, [CanBeNull] string name)
 => indexBuilder.HasDatabaseName(name);