【发布时间】:2022-06-18 00:12:51
【问题描述】:
Есть модели объектов которые хранятся в БД。
public class Person
{
[PrimaryKey, AutoIncrement,NotNull]
public int Id { get; set; }
[NotNull]
public string Fullname { get; set; }
[ForeignKey(typeof(Job))]
public int Idjob { get; set; }
[ManyToOne(CascadeOperations = CascadeOperation.CascadeRead)]
public Job Jobb { get; set; }
public string job
{
get
{
string s = App.HRDB.GetJobAsync().Result.ToArray().Where(p => p.Id == Idjob).FirstOrDefault().Name;
if (s == "")
return "";
return s;
}
}
}
public class Job
{
[PrimaryKey, AutoIncrement]
public int Id { get; set; }
public string Name { get; set; }
public int CountPlace { get; set; }
[OneToMany(CascadeOperations = CascadeOperation.CascadeDelete)]
public List<Person> people { get; set; }
}
При сохранении нового сотрудника по профессии я добавляю его в лист работы и вызываю метод сохранения работы:
private async void Save_Clicked(object sender, EventArgs e)
{
Person person = (Person)BindingContext;
if (person == null)
person = new Person() { Fullname = Fullname.Text };
Job job = jobs.Where(p => p.Name == CB.Items[CB.SelectedIndex]).FirstOrDefault();
person.Idjob = job.Id;
person.Jobb = job;
if (job.people == null)
job.people = new List<Person>();
job.people.Add(person);
if (!string.IsNullOrWhiteSpace(person.Fullname) && !string.IsNullOrWhiteSpace(person.Idjob.ToString()))
{
await App.HRDB.SavePersonAsync(person);
await App.HRDB.SaveJobAsync(job);
}
await Shell.Current.GoToAsync("..");
}
Метод сохранения:
public Task<int> SaveJobAsync(Job job)
{
if (job.Id == 0)
return db.InsertAsync(job);
return db.UpdateAsync(job);
}
Но при последующей подгрузке работ, лист сотрудников профессии равен null
【问题讨论】:
-
SO 是一个仅限英文的网站 - 请尊重rules of the site,并将您的问题(包括标题!)翻译成英文,或者发布到Stack Overflow на русском
-
如果人们甚至无法阅读您的问题,您将不会得到任何答案。 StackOverflow 是一个英文网站。用英语发布新问题或使用ru.stackoverflow.com