mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-04-24 03:32:50 +08:00
63 lines
2.5 KiB
C#
63 lines
2.5 KiB
C#
using System;
|
||
using System.Collections.Generic;
|
||
using System.Text;
|
||
|
||
namespace FreeSql.DataAnnotations
|
||
{
|
||
/// <summary>
|
||
/// 索引设置,如:[Index("{tablename}_idx_01", "name")]
|
||
/// </summary>
|
||
[AttributeUsage(AttributeTargets.Class, AllowMultiple = true)]
|
||
public class IndexAttribute : Attribute
|
||
{
|
||
/// <summary>
|
||
/// 索引设置,如:[Index("{tablename}_idx_01", "name")]
|
||
/// </summary>
|
||
/// <param name="name">索引名<para></para>v1.7.0 增加占位符 {TableName} 表名区分索引名 (解决 AsTable 分表 CodeFirst 导致索引名重复的问题)</param>
|
||
/// <param name="fields">索引字段,为属性名以逗号分隔,如:Create_time ASC, Title ASC</param>
|
||
public IndexAttribute(string name, string fields)
|
||
{
|
||
this.Name = name;
|
||
this.Fields = fields;
|
||
}
|
||
/// <summary>
|
||
/// 索引设置,如:[Index("{tablename}_idx_01", "name", true)]
|
||
/// </summary>
|
||
/// <param name="name">索引名<para></para>v1.7.0 增加占位符 {TableName} 表名区分索引名 (解决 AsTable 分表 CodeFirst 导致索引名重复的问题)</param>
|
||
/// <param name="fields">索引字段,为属性名以逗号分隔,如:Create_time ASC, Title ASC</param>
|
||
/// <param name="isUnique">是否唯一</param>
|
||
public IndexAttribute(string name, string fields, bool isUnique)
|
||
{
|
||
this.Name = name;
|
||
this.Fields = fields;
|
||
this.IsUnique = isUnique;
|
||
}
|
||
/// <summary>
|
||
/// 索引名<para></para>
|
||
/// v1.7.0 增加占位符 {TableName} 表名区分索引名 (解决 AsTable 分表 CodeFirst 导致索引名重复的问题)
|
||
/// </summary>
|
||
public string Name { get; set; }
|
||
/// <summary>
|
||
/// 索引字段,为属性名以逗号分隔,如:Create_time ASC, Title ASC
|
||
/// </summary>
|
||
public string Fields { get; set; }
|
||
|
||
internal bool? _IsUnique;
|
||
/// <summary>
|
||
/// 是否唯一
|
||
/// </summary>
|
||
public bool IsUnique { get => _IsUnique ?? false; set => _IsUnique = value; }
|
||
|
||
/// <summary>
|
||
/// 索引类型<para></para>
|
||
/// 暂时只有 FreeSql.Provider.PostgreSQL 有效
|
||
/// </summary>
|
||
public IndexMethod IndexMethod { get; set; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// 暂时只有 FreeSql.Provider.PostgreSQL 有效
|
||
/// </summary>
|
||
public enum IndexMethod { B_Tree, Hash, GiST, GIN, SP_GiST, BRIN }
|
||
}
|