在 Core 3.0 中,我可以加入多个数据库/模式。这是 dbEarth 中的 Order 类:
namespace dgNet.Core.Models.Earth
{
[Table("tbl_Order", Schema ="Earth")]
public class Order : EntityBaseWithTypedId<int>
{
[Key]
[Column("BestID")]
public override int Id { get; set; }
这是 dbMars 中的类 SerialNumber
namespace dgNet.Core.Models.Mars
{
[Table("tbl_serialnumber", Schema = "Mars")]
public class SerialNumber : EntityBaseWithTypedId<int>
{
[Column("serialnumber")]
public int Serialnumber { get; set; }
[Column("jobId")]
public int JobId { get; set; }
[ForeignKey("JobId")]
public Order Order { get; set; }
数据注释相当于这里的代码:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Order>().ToTable("tbl_Order", "Earth");
}
因此,如果构建一个 LINQ 查询并将 Order(dbEarth) 包含在 SerialNumber(dbMars) 中,它运行良好。
query => query.Include(serialNumber => serialNumber.Order).FirstOrDefault();
更新到 Core 5.0 SQL 后,查询创建不正确。
SQL 将 Orders 连接到与 SerialNumbers 相同的数据库/模式上。
使用最新的 NuGet 包 .AspCore (5.0.10) DB = MySQL 使用 Pomelo.EntityFrameworkCore.MySql (5.0.2)
有人有这个问题吗?