Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.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
C# NET MVC在种子数据和真实数据之间切换_C#_Asp.net Mvc_Entity Framework_Asp.net Core - Fatal编程技术网

C# NET MVC在种子数据和真实数据之间切换

C# NET MVC在种子数据和真实数据之间切换,c#,asp.net-mvc,entity-framework,asp.net-core,C#,Asp.net Mvc,Entity Framework,Asp.net Core,在NETMVCCore2中,VisualStudio中是否有一种方法可以在人工内存种子数据和真实测试环境sql连接之间切换?我们正在两个环境之间不断进行测试 这是如何从源代码创建人工数据:“Pro ASP.NET核心MVC 2,Freeman”。 要在种子数据之间切换,我必须删除所有这些,然后在Application.json中再次添加一个真正的连接字符串,我试图阻止删除/添加代码。目前MVC初学者,仅编程几个月,所以尝试学习。多谢各位 创建种子数据 new Product { Name = "

在NETMVCCore2中,VisualStudio中是否有一种方法可以在人工内存种子数据和真实测试环境sql连接之间切换?我们正在两个环境之间不断进行测试

这是如何从源代码创建人工数据:“Pro ASP.NET核心MVC 2,Freeman”。 要在种子数据之间切换,我必须删除所有这些,然后在Application.json中再次添加一个真正的连接字符串,我试图阻止删除/添加代码。目前MVC初学者,仅编程几个月,所以尝试学习。多谢各位

创建种子数据

new Product {
Name = "Kayak", Description = "A boat for one person",
Category = "Watersports", Price = 275 },

new Product {
Name = "Lifejacket",
Description = "Protective and fashionable",
Category = "Watersports", Price = 48.95m },
然后在Startup.cs中

public void ConfigureServices(...
services.AddTransient<IProductRepository, EFProductRepository>();

public void Configure(...
SeedData.EnsurePopulated(app);
public void配置服务(。。。
services.AddTransient();
公共无效配置(。。。
种子数据。重新填充(app);

您正在寻找的功能位于EF Core中。它是.UseInMemoryDatabase选项:

public TestDbContext Context => InMemoryContext();
    private TestDbContext InMemoryContext()
    {
        var options = new DbContextOptionsBuilder<TestDbContext>()
            .UseInMemoryDatabase(Guid.NewGuid().ToString())
            .EnableSensitiveDataLogging()
            .Options;
        var context = new TestDbContext(options);

        return context;
publictestdbcontext=>InMemoryContext();
MemoryContext()中的私有TestDbContext
{
var options=new DbContextOptionsBuilder()
.UseInMemoryDatabase(Guid.NewGuid().ToString())
.EnableSensitiveDataLogging()
.选择;
var context=newtestdbcontext(选项);
返回上下文;
}


此博客将填补空白:

为了自动切换连接字符串,您需要使用基于环境的配置。然后,根据您的环境变量,您的应用程序将读取不同的值。
查看此答案以了解更多详细信息:

您不能读取文件吗?有没有办法在真正的测试数据库连接之间切换?无需编写和删除代码,我正在寻找Visual Studio参数环境配置按钮或下拉列表?谢谢,我在编写单元测试时使用了上述项目,非常熟悉你能给出一个代码示例来修改种子库中的环境变量吗?通常stackover更喜欢url链接的答案,谢谢,我正在研究如何修改代码