我正在尝试使用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);
}
}
任何帮助..
答案 0 :(得分:0)
你需要告诉代码使用哪个连接字符串,没有魔法逻辑可以选择默认值。
以下是如何执行此操作的示例:https://github.com/aspnet/MusicStore/blob/master/src/MusicStore/Startup.cs#L43-L46