首先使用代码创建字符串索引
本文关键字:创建 字符串 索引 代码 | 更新日期: 2023-09-27 18:35:42
我首先使用实体框架 6.1 代码,我的域模型如下。
class Item
{
[Index]
public string CreatedBy { set; get; }
}
当我使用更新数据库进行迁移时,出现以下错误。但是,就我所研究而言,[Index]
应该作为string
的注释。
表 'dbo' 中的"创建者"列。Items' 的类型不能用作索引中的键列。
通常,当您使用 VARCHAR(Max) 时,您会收到此错误,请尝试使用:
[Column(TypeName = "VARCHAR")]
[StringLength(n)]
[Index]
public string CreatedBy { set; get; }
其中 n 介于 1 和 450 之间。
如果您使用 EntityTypeConfiguration aka 映射:
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 }));
}
}
}