Клаус в принципе уже указал, что нужно сделать - попробуйте этот код:
using (DatabaseDataContext db = new DatabaseDataContext())
{
Customer newCustomer = new Customer()
{
Email = customer.Email
};
Address b = new Address()
{
Address1 = billingAddress.Address1
};
newCustomer.Address = b;
db.Customers.InsertOnSubmit(newCustomer);
db.SubmitChanges();
}
Если вы связываете адрес b
с клиентом, которого вы только что создали, а затем вставляете этого клиента в коллекцию db.Customers
, вызов db.SubmitChanges()
должен автоматически сохранить адрес, сохранить клиента и исправить любое из столбцы IDENTITY, чтобы сделать эту работу. Это действительно работает для меня в тестовом примере.
Вы пока не можете использовать адрес или идентификатор клиента - они еще не установлены. Но вы определенно можете связать полные объекты друг с другом и, таким образом, получить «связь» между ними на месте.
Чтобы это работало, вам нужно убедиться, что в конструкторе DBML в окне Properties
для обоих столбцов идентификатора Auto Generated Value
равен True
, а Auto-Sync
соответствует OnInsert
( оба из которых не являются значениями по умолчанию).