我在实体框架方面遇到了更多问题。其中一个已在此处解决实体框架多个表同名
现在,当我尝试插入表 bo 或表 bi 时,出现以下错误:
{"无效的列名 'Bo_obrano'。\r\n无效的列名 'Bo_boano'。\r\n无效的列名 'Bo_ndos'。"}
或者
{"Invalid column name 'Bi_bistamp'}
当我通过使用电动工具对数据库进行反向工程时,我现在有我的 bo 映射,如下所示:
public boMap()
{
// Primary Key
HasKey(t => new { t.obrano, t.boano, t.ndos });
Property(t => t.obrano)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
Property(t => t.boano)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
Property(t => t.ndos)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
}
和像这样的双向映射:
public BiMap()
{
// Primary Key
HasKey(t => t.bistamp);
....
我的上下文类如下所示:
public class PHCDbContext:DbContext
{
//classes mapeadas via reverse
public DbSet<Bi> DadosLinhasEncomendas { get; set; }
public DbSet<Bo> DadosCabecalhosEncomendas { get; set; }
...
public PHCDbContext(string connection):base(connection)
{
Database.SetInitializer<PHCDbContext>(null);
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Configurations.Add(new BiMap());
modelBuilder.Configurations.Add(new boMap());
....
我按照此处的说明导出了映射: export code first model mapping
我发现这些字段本身并不存在。当我在 Visual Studio 中打开 edmx 文件时,我发现这些字段位于类的导航属性中,在模型的关联部分中。它们代表表中的主键,而不是外键。但它们没有映射到 poco 类中的任何值。对数据库中的任何列都要少得多。那么我该如何解决呢?提前感谢您的帮助