使用EF4.1,是否可以在Seed()期间为CF生成的数据库添加约束?

时间:2011-11-16 04:18:24

标签: entity-framework

虽然急切地等待直接支持EF的CodeFirst中的UNIQUE约束(针对SQL2k8R2),但我正在运行一个SQL脚本,在CF为我创建数据库后执行ALTER TABLE ADD CONSTRAINT。

我想以某种方式以编程方式在CF创建架构后立即添加这些UNIQUE约束,可能是通过ALTER TABLE?

我想也许在Seed()中以某种方式覆盖?

可能的?

1 个答案:

答案 0 :(得分:3)

您可以设置Database Initializer来创建约束。

public class MyInitializer : CreateDatabaseIfNotExists<MyDbContext>
{
    protected override void Seed(MyDbContext context)
    {
        //your logic here
        context.Database.ExecuteSqlCommand("ALTER TABLE customer ADD CONSTRAINT con_first UNIQUE (first_name);");    
    }
}