【问题标题】:Map Oracle DB Table with no primary but with unique index映射没有主索引但具有唯一索引的 Oracle 数据库表
【发布时间】:2019-09-13 15:31:57
【问题描述】:

我们有不能以任何方式修改的 Oracle 数据库。 大多数表都是通用的,并且......它们没有主键。 ORM (EF) 不会映射没有主键的表。

但我看到一个表有唯一索引。

我可以通过唯一索引将该表与 EF 6 映射吗?

【问题讨论】:

  • 您使用哪种方法:代码优先还是数据库优先?
  • 数据库优先。

标签: c# oracle entity-framework orm mapping


【解决方案1】:

在静音模式下设置主键:

public class MyContext: DbContext
{
    public virtual DbSet<Car> Cars { get; set; }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Car>()
            .HasKey(c => new { c.State, c.LicensePlate });
    }
}

来源:https://docs.microsoft.com/pl-pl/ef/core/modeling/keys?tabs=data-annotations

【讨论】:

  • 谢谢。情况是我们无法映射表,因此“Car”不存在,因此无法使用此代码:Entity...
  • 所以你目前没有模型(POCO,实体)类?
  • 正确,这就是我试图做的 - 映射它。
  • 你有 DbContext 还是你需要一切?
  • 是的,我有 DbContext 并且映射了其他对象。这不再是问题,系统完成了。我记不清了,但我想我只是自己创建了一个 DTO 并手动填充它。不用担心,感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-06
相关资源
最近更新 更多