C# 如何在控制台项目中使用CreateDataContext实例?

C# 如何在控制台项目中使用CreateDataContext实例?,c#,entity-framework-core,C#,Entity Framework Core,假设我有两个项目: 持久性项目,它是一个类库,这是我放置DataContext类的地方 public class DataContext : DbContext { public DataContext(DbContextOptions<DataContext> options) : base(options) { } // code removed for brevity } 公共类DataContext:DbContext { 公共数据上下文(

假设我有两个项目:

持久性项目,它是一个类库,这是我放置DataContext类的地方

public class DataContext : DbContext
{
    public DataContext(DbContextOptions<DataContext> options) : base(options)
    {

    }

   // code removed for brevity
}
公共类DataContext:DbContext
{
公共数据上下文(DbContextOptions):基本(选项)
{
}
//为简洁起见,删除了代码
}
我还有另一个控制台项目,它使用上面的项目进行数据访问。如何创建DataContext的实例?我想我需要在我的控制台中实现依赖注入,但不知道如何实现


顺便说一句,我正在使用.NET Core 3.1和Entity Framework Core,我不是专家,但我会告诉你我在.NET Core cosnole应用程序中做了什么,如果有其他更好的方法,请建议我

像这样声明类

class TestContext: DbContext
{
    IConfigurationRoot _configuration;
    public TestContext(IConfigurationRoot configuration)
    {
        _configuration = configuration;
    }
    public DbSet<YourEntity> YourEntity { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {

        optionsBuilder.UseSqlServer(_configuration.GetConnectionString("connection_string"));
    }
}

我不是专家,但我会告诉你我在.net core cosnole应用程序中做了什么,如果有其他更好的方法,请建议我

像这样声明类

class TestContext: DbContext
{
    IConfigurationRoot _configuration;
    public TestContext(IConfigurationRoot configuration)
    {
        _configuration = configuration;
    }
    public DbSet<YourEntity> YourEntity { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {

        optionsBuilder.UseSqlServer(_configuration.GetConnectionString("connection_string"));
    }
}

解释文件

var optionsBuilder=new DbContextOptionsBuilder();
optionsBuilder.UseSqlite(“数据源=blog.db”);
使用(var context=newdatacontext(optionsBuilder.Options))
{
//做事
}

对文档进行解释

var optionsBuilder=new DbContextOptionsBuilder();
optionsBuilder.UseSqlite(“数据源=blog.db”);
使用(var context=newdatacontext(optionsBuilder.Options))
{
//做事
}

谢谢。但是,我不想在我的控制台项目中创建另一个上下文类,那么您可以在类库中引用已经创建的上下文类。但是如何创建呢?不确定在类构造函数中放入什么。您可以使用默认构造函数,然后在那里可以定义。但是,我不想在我的控制台项目中创建另一个上下文类,那么您可以在类库中引用已经创建的上下文类。但是如何创建呢?不确定在类构造函数中放入什么。可以使用默认构造函数,然后在那里定义
var optionsBuilder = new DbContextOptionsBuilder<DataContext>();
optionsBuilder.UseSqlite("Data Source=blog.db");

using (var context = new DataContext(optionsBuilder.Options))
{
  // do stuff
}