我一直在寻找一种方法来制作,例如在数据库中使用Fluent API
/的用户名是唯一的Code First
。这甚至可以通过这些路线中的任何一条实现吗?
因为我找不到任何说明如何完成的教程或示例。
我一直在寻找一种方法来制作,例如在数据库中使用Fluent API
/的用户名是唯一的Code First
。这甚至可以通过这些路线中的任何一条实现吗?
因为我找不到任何说明如何完成的教程或示例。
您必须提供一个 Context Initializer 并覆盖 Seed 方法来初始化您的数据库。在那里,您可以使用DbContext.Database.ExecuteSqlCommand添加唯一索引。这是相同的示例代码。
模型
public class Relay {
//Scalar Properties
private int _id;
[Key]
public virtual int Id {
get { return _id; }
set { SetField(ref _id, value, () => Id); }
}
private string _name;
[MaxLength(100)]
[Required]
public virtual string Name {
get { return _name; }
set { SetField(ref _name, value, () => Name); }
}
//Other properties of Model
}
数据库上下文
public class RelayContext : DbContext {
public DbSet<Relay> Relays { get; set; }
public RelayContext(string connectionString) :
base(connectionString) {
Database.SetInitializer(new RelayContextInitializer());
}
}
上下文初始化器
public class RelayContextInitializer : CreateDatabaseIfNotExists<RelayContext> {
protected override void Seed(RelayContext context) {
context.Database.ExecuteSqlCommand("CREATE UNIQUE INDEX Uix_Relay_Name ON Relays(Name)");
}
}
就是这样。您现在在中继表的名称字段上创建了一个唯一索引。