У меня есть служба Gmail, которая возвращает мне имена и номера телефонов моих контактов. для хранения этой информации в моей базе данных я создал два простых класса poco
так что я хочу сделать: 1 - чтобы избежать дубликатов
2- Я могу обновить информацию о контактах в Gmail, поэтому в следующий раз, когда я вызову указанную ниже функцию, я бы хотел обновить контакты. как мне это сделать?
public class CONTACTS_INFO
{
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int CI_ROWID { get; set; }
public int CI_CONTACT_REFNO { get; set; }
public string CI_PHONE_NUMBERS { get; set; }
}
public class GMAIL_CONTACTS
{
public GMAIL_CONTACTS()
{
CONTACTS_INFO = new List<CONTACTS_INFO>();
}
[Key,DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int GC_ROWID { get; set; }
public string GC_CONTACT_NAME { get; set; }
[ForeignKey("CI_CONTACT_REFNO")]
public List<CONTACTS_INFO> CONTACTS_INFO { get; set; }
}
следующий мой метод
using (var context = new MPContext())
{
foreach (var contact in cr.GetContacts().Entries)
{
if (string.IsNullOrEmpty(contact.Name.FullName)) continue;
var gContacts = new GMAIL_CONTACTS { GC_CONTACT_NAME = contact.Name.FullName };
foreach (var phonenumber in contact.Phonenumbers)
{
if (string.IsNullOrEmpty(phonenumber.Label)) continue;
gContacts.CONTACTS_INFO.Add(new CONTACTS_INFO { CI_PHONE_NUMBERS = phonenumber.Value + phonenumber.Label });
}
//Here I would like to do two things
//1-Check if I have this contact in database so I wont save it
//2-I may change information on the gmail so I would like to update my contacts
context.GMAIL_CONTACTS.Add(gContacts);
}
context.SaveChanges();
}