Я добавляю в свою программу функцию, которая позволяет Сотрудникам преобразовывать гостя мероприятия в клиентов, чтобы им не приходилось все перепечатывать.
Одна проблема, с которой я сталкиваюсь, состоит в том, что ... Гость имеет номер телефона и rmail в той же таблице, что и остальная информация. Клиенты хранят свои номера телефонов и электронные письма в отдельной таблице «один ко многим».
Так что во время преобразования мне нужно CustomerID
, чтобы присвоить адрес электронной почты и номер телефона, чтобы сохранить его в таблицах.
Как создать клиента и сохранить CustomerID
, чтобы использовать его для присвоения таблицам CustomerEmail
и CustomerPhone
?
У меня есть ViewModel для обработки всех переменных.
Что я должен сделать с кодом ниже, чтобы он назначил CustomerID
для успешного вызова SaveChanges()
для CustomerPhones
&& CustomerEmails
?
var customerNew = new Customer
{
CustomerTypeId = customer.CustomerTypeId,
FirstName = customer.FirstName,
LastName = customer.LastName,
FullName = customer.FirstName + " " + customer.LastName,
Birthday = customer.Birthday,
GenderId = customer.GenderId,
CompanyName = customer.CompanyName,
UserName = customer.UserName,
FavMusicId = customer.FavMusicId,
OwnerId = customer.OwnerId
};
var phoneNew = new CustomerPhone
{
CustomerId = customer.CustomerId,
Number = customer.Number,
PhoneTypeId = 5
};
var emailNew = new CustomerEmail
{
CustomerId = customer.CustomerId,
Email = customer.Email
};
db.Customers.AddObject(customerNew);
db.CustomerPhones.AddObject(phoneNew);
db.CustomerEmails.AddObject(emailNew);
db.SaveChanges();
return RedirectToAction("Details", new { id = customer.CustomerId });
Спасибо,
Тим
ДОПОЛНИТЕЛЬНЫЕ бонусные баллы: Если вы можете сказать мне, как автоматически удалять гостя из базы данных после создания клиента, не нажимая ничего другого. :)