Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core 实例化DBContext并从类型(另一个项目)获取其元数据_Asp.net Core_Entity Framework Core - Fatal编程技术网

Asp.net core 实例化DBContext并从类型(另一个项目)获取其元数据

Asp.net core 实例化DBContext并从类型(另一个项目)获取其元数据,asp.net-core,entity-framework-core,Asp.net Core,Entity Framework Core,我有project1这是一个ASP.NET核心应用程序和project2这是一个.NET标准库 是否有方法仅使用类型从我的库中实例化在项目1中找到的DbContext?我只想得到关于它的元数据 脚手架是怎么做到的 示例 var context = InstatiateFromType(typeof(MyContext)); // So that I get access to the metadata var x = context.Model.FindEntityType(...); 我不确

我有project1这是一个ASP.NET核心应用程序和project2这是一个.NET标准库

是否有方法仅使用类型从我的库中实例化在项目1中找到的DbContext?我只想得到关于它的元数据

脚手架是怎么做到的

示例

var context = InstatiateFromType(typeof(MyContext));
// So that I get access to the metadata
var x = context.Model.FindEntityType(...);

我不确定我是否理解正确

但是,您可以在构造函数中使用通过DI获取实例,而不是自己实例化它

public void ConfigureServices(IServiceCollection services)
{
    services.AddMvc();
    services.AddDbContext<MyContext>(options => options.UseSqlServer("connectionString"));
}
public void配置服务(IServiceCollection服务)
{
services.AddMvc();
services.AddDbContext(options=>options.UseSqlServer(“connectionString”);
}

然后在你的类中,你只需要通过构造函数就可以得到它。

库中没有DI。你可以使用Activator创建一个实例这就是我现在正在做的,但是我想知道是否有更好的方法,因为Activator需要用实际的数据库配置DbContext。啊,好的。对不起,我现在没有建议了。
public void ConfigureServices(IServiceCollection services)
{
    services.AddMvc();
    services.AddDbContext<MyContext>(options => options.UseSqlServer("connectionString"));
}