在 Dbcontext 中使用托管环境

Using Hosting env in Dbcontext

有没有一种方法可以使用托管环境变量来决定加载哪些种子数据?我在 Dbcontext 中 DI Ihostingenvironment 但不起作用。还有别的办法吗? 我认为的一种方法是查看连接字符串并手动检查 dev/QA 是否存在,但考虑是否有更好的方法?

您可以创建一个单独的 class 作为单例使用。

public class DbOptions
{
    public bool UseDefaultSeed { get; set; }
}

在您的服务中将其添加为:

if (env.EnvironmentName == "")
    services.AddSingleton(new DbOptions {
        UseDefaultSeed = true
    });

您现在可以在 DbContext 中注入 DbOptions