目前正在Entity Framework Core上进行一些学习,希望得到一些帮助,因为我被困了一段时间。
我有一套模型:
这是困扰我的部分:
我遇到的问题是如何建立这些模型并创建一个新模型,而不必在创建过程中将整个用户对象传递给班级/学校?例如。我的模型可能看起来像
class School
{
[Required]
public string id {get; set;}
[Required]
public User Admin {get; set;}
[Required]
public List<Student> Students {get; set;}
[Required]
public List<SchoolClass> Classes {get; set;}
}
(请注意,为方便起见,这很快就被扔到了一起)
如果被问到,我可以提供更多细节,但是我觉得我目前的整体做法略有错误。
基本上,每当我添加一个用户时,我都应该能够添加一个学生(可选),然后我应该能够创建学校,但是理想情况下,我不想获取/传递整个用户对象/列表最初创建学校时要上课->例如,我只想传递用户ID作为管理员。
然后,当我创建SchoolClass
时,不需要创建新用户,我应该能够添加当前用户。不太确定该去哪里。
编辑:我已经弄清楚了,以后会更新帖子!
答案 0 :(得分:1)
您可以使用null运算符(?)将其设置为可为空
public User? Admin {get; set;}
进行数据库调用时,将Admin User对象添加到School对象。但是,它不会将整个对象添加到数据库中。它将仅更新School表中的外键,除非您明确进行修改,否则Admin不会被标记为要修改。
另外请注意,由于使用Fluent API,属性逐渐被淘汰。