Cam*_*ell 5 c# mysql database dbcontext entity-framework-core
我正在使用 EFCore 连接到 MySQL 5.7 服务器,并尝试同时将 DbContext 连接到多个架构,但它始终默认为我在连接字符串中指定的数据库
"ConnectionStrings": {
"Database": "server=localhost; port=3306; user id=user; password=pass; database=schema1;"
}
Run Code Online (Sandbox Code Playgroud)
在我的 Context 类中,我尝试使用该ToTable("table", "schema")属性将实体设置为具有不同的架构
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<User>(entity =>
{
entity.ToTable("users", "schema1");
});
modelBuilder.Entity<Order>(entity =>
{
entity.ToTable("orders", "schema2");
});
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,当我尝试从数据库检索数据时,出现以下错误:
MySql.Data.MySqlClient.MySqlException: 'Table 'schema1.orders' doesn't exist'
Run Code Online (Sandbox Code Playgroud)
如果我尝试一些明显错误的事情,比如
entity.ToTable("schema2.orders", "schema2");
Run Code Online (Sandbox Code Playgroud)
然后我毫不奇怪地得到了错误:
MySql.Data.MySqlClient.MySqlException: 'Table 'schema1.schema2.orders' doesn't exist'
Run Code Online (Sandbox Code Playgroud)
所以看起来好像它总是只使用database连接字符串中的。
如果我修改连接字符串以删除database,我相信这是朝着正确方向迈出的一步。
"ConnectionStrings": {
"Database": "server=localhost; port=3306; user id=user; password=pass;"
}
Run Code Online (Sandbox Code Playgroud)
然后我收到以下错误:
MySql.Data.MySqlClient.MySqlException: 'No database selected'
Run Code Online (Sandbox Code Playgroud)
我试图通过 MySQL 连接实现什么,或者对此功能的支持仅限于特定的数据库引擎
| 归档时间: |
|
| 查看次数: |
1345 次 |
| 最近记录: |