Есть модели объектов которые хранятся в БД。
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 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();
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 SaveJobAsync(Job job)
{
if (job.Id == 0)
return db.InsertAsync(job);
return db.UpdateAsync(job);
}
Но при последующей подгрузке работ, лист сотрудников профессии равен null
© 版权声明
本站下载的源码均来自公开网络收集转发二次开发而来,
若侵犯了您的合法权益,请来信通知我们1413333033@qq.com,
我们会及时删除,给您带来的不便,我们深表歉意。
下载用户仅供学习交流,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担,访问及下载者下载默认同意本站声明的免责申明,请合理使用切勿商用。
THE END
暂无评论内容