添加条件时 - "已配置关系存储,但未指定要使用的DbConnection或连接字符串。"

时间:2015-04-30 06:04:12

标签: asp.net-core entity-framework-core

我正在尝试使用EF7我配置了config.json和Startup.cs中的所有设置,

能够添加和应用迁移。 1-更改字段长度时它不适用于数据库,代码看起来像

[StringLength(100)]
public int Text { get; set; }

2-当我在编写实体上的条件时出现此错误"已配置关系存储而未指定要使用的DbConnection或连接字符串" 我的代码看起来像

TestContext db = new TestContext();
var cust = db.Customers.Where(x => x.id == text).FirstOrDefault();

这里有什么问题?

Config.json

{
    "Data": {
        "DefaultConnection": {
            "ConnectionString": "Server=Jay-PC;Database=TestDb;User Id=sa; Password=xxx;MultipleActiveResultSets=true"
        }
    },
    "EntityFramework": {
        "TestContext": {
            "ConnectionString": "Data:DefaultConnection:ConnectionString"
        }
    }
}

Startup.cs

public class Startup
    {
        public Startup(IHostingEnvironment env)
        {
            Configuration = new Configuration()
                .AddJsonFile("config.json")
                .AddEnvironmentVariables();
        }

        public IConfiguration Configuration { get; set; }

        public void ConfigureServices(IServiceCollection services)
        {
            services.AddEntityFramework(Configuration)
                .AddSqlServer()
                .AddDbContext<TestContext>();
            services.AddMvc();

        }
}

我的上下文看起来像

public class TestContext : DbContext
    {
        public DbSet<Contact> Contacts { get; set; }
        public DbSet<Customer> Customers { get; set; }

        public TestContext()
        {
        }
        protected override void OnConfiguring(DbContextOptions options)
        {
            options.UseSqlServer();
        }

        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);
        }
    }

任何帮助..

1 个答案:

答案 0 :(得分:0)

你需要告诉代码使用哪个连接字符串,没有魔法逻辑可以选择默认值。

以下是如何执行此操作的示例:https://github.com/aspnet/MusicStore/blob/master/src/MusicStore/Startup.cs#L43-L46