gpt4 book ai didi

c# - 更改 Entity Framework 生成的中间表的表模式

转载 作者:行者123 更新时间:2023-11-30 17:05:26 24 4
gpt4 key购买 nike

我有这样的 M:N 关系模型:

[Table("Messages", Schema = "public")]
public class Message
{

public int Id { get; set; }
public virtual IList<Phone> Phones{ get; set; }

}

[Table("Phones", Schema = "public")]
public class Phone
{

public int Id { get; set; }
public virtual IList<Message> Messages{ get; set; }

}

所以 EF 为我生成了中间表...但是表的默认模式不是公开的(这是我需要的),但仍然是 dbo。并给我错误:架构“dbo”不存在

如何在不创建 MessagePhone 模型类的情况下更改 MessagePhone 表的表架构?

最佳答案

我认为这是可行的。您将必须覆盖 DbContext 类的 OnModelCreating 并使用流畅的 API 进行配置:

 protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Message>().HasMany<Phone>(m => m.Phones).WithMany(p => p.Messages).Map
(
x =>
{
x.ToTable("MessagePhone", "public");
}
);
}

你将不得不测试这个,不确定我的所有语法是否正确..这里没有 VS 来尝试它。

关于c# - 更改 Entity Framework 生成的中间表的表模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16554210/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com