c# - 实体框架核心关系——外键
问题描述
由于我刚刚开始学习实体框架,我想知道如何正确创建两个表之间的关系。
我会自己尝试,但我什至无法设置数据库连接:(
这是我的问题,这里有两个类(表)Student
和Grade
:
public class Student
{
public int Id { get; set; }
public string Name { get; set; }
public int GradeId { get; set; }
public Grade Grade { get; set; }
}
public class Grade
{
public int GradeId { get; set; }
public string GradeName { get; set; }
}
就像上面的例子一样,我意识到添加类型Grade
作为属性会创建与 table的关系Grade
,
现在很重要,但是GradeId
哪个不经意地持有外键值呢?它位于 type 上方,它的Grade
名字是 或者它必须是严格的(在我的例子中包含 type + Id):?GradeId
StudentGradeId
ForeignKeyId
TypeNameId = GradeId
解决方案
EF 将按照约定将导航属性与外键属性匹配。因此,如果您的 Navigation Property 称为 Grade 而 Foreign Key 属性称为 GradeId,它们将自动匹配。
如果它们不遵循约定,您只需通过使用ForeignKeyAttribute装饰属性或使用OnModelCreating中的 Fluent API来显式配置它们。
推荐阅读
- reactjs - Redux - 更新对象数组中的值
- angular - Angular中子组件的错误ExpressionChangedAfterItHasBeenCheckedError
- postgresql - 更新包含大量随机值行的表
- c++ - 如何在 Qt QTableView 中设置 Shift + 单击选择的初始索引?
- kotlin - 如何将数据从 recyclerview 传递到片段?
- swift - Swift XCUITest:如何在执行 UI 测试时单击 UIImagePickerController() 的默认“选择”按钮?
- python-3.x - 带有 if...else 的 lambda 函数在数据帧的 agg 中
- android - Jetpack compose:无法使用 Youtube API
- r - 在 R 中创建一个可以遍历不同数据帧的函数/宏
- ios - “图像文字”命令在 Xcode 中不起作用