Creating string index with Code first

后端 未结 2 1682
深忆病人
深忆病人 2020-12-08 13:38

I\'m using Entity Framework 6.1 code-first and my domain model is below.

class Item
{
    [Index]
    public string CreatedBy { set; get; }
} 
相关标签:
2条回答
  • 2020-12-08 13:53

    If you use EntityTypeConfiguration aka mappings :

    public class MyPocoEntitiyTypeConfig<T> : EntityTypeConfiguration<T> where T:class
    {
    
    }
    
    public class MyPocoEnt
    {
        public virtual string MyProp { get; set; }
    }
    
    public class MyPocoEntMapping : MyPocoEntitiyTypeConfig<MyPocoEnt>
    {
        public MyPocoEntMapping()
        {
                Property(x => x.MyProp).HasMaxLength(300);
                Property(x => x.MyProp).HasColumnAnnotation("Index", new IndexAnnotation(new IndexAttribute("MyProp") { IsUnique = true }));
            }
        }
    }
    
    0 讨论(0)
  • 2020-12-08 14:02

    Usually you get this error when you use a VARCHAR(Max) try using:

    [Column(TypeName = "VARCHAR")]
    [StringLength(n)]
    [Index]
    public string CreatedBy { set; get; }
    

    where n is between 1 and 450.

    0 讨论(0)
提交回复
热议问题