【问题标题】:Code First mapping代码优先映射
【发布时间】:2023-03-25 22:35:02
【问题描述】:

我正在尝试将部门映射到员工。

这是部门类:

Class Department
    Property DepartID As Integer = 0
    Property DepartName As String
End Class

如果我将 Employee 类定义如下:

Class Employee
    Property EmployeeID As Integer
    Property DepartID As Integer

    ' Navigational Property
    Overridable Property Depart As Department
End Class

如您所见,结构非常简单。基本上,员工表存储部门 ID,我想自动填充部门属性。

如果我在 Employee 中定义了 Foreign ID 字段,我可以使用 Fluent API 轻松映射外键:

.HasRequired(Function(e) e.Depart).WithMany.HasForeignKey(Function(e) e.DepartID).WillCascadeOnDelete(False)

但是,我希望在 Employee 表中不定义 ID 属性 (DepartID) 的情况下实现相同的目标。它只是会更干净一些,因为我不必有多个 ID 字段。有可能吗?

【问题讨论】:

  • 如果Employee表中没有DepartID你怎么知道Employee属于哪个部门?

标签: mapping ef-code-first


【解决方案1】:

我想您的意思是 Employee 类中的 DepartID(不是表,请参阅我的评论)。如果是这样,您可以使用ForeignKeyNavigationPropertyConfiguration.Map 方法在模型中不使用 FK 的情况下对其进行映射。

【讨论】:

  • 是的,正确,我的意思是在 Employee 类中,而不是在 Table 中。我将尝试您提到的 ForeignKeyNavigationPropertyConfiguration.Map 方法。还没有机会这样做。
猜你喜欢
  • 1970-01-01
  • 2012-09-27
  • 2014-08-31
  • 1970-01-01
  • 2011-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多