Проблема в том, что идентификатор вашего процесса устанавливается, когда изменения передаются в базу данных. Потому что вы отправляете изменения после строки, в которой вы назначаете идентификатор процесса для продукта (product.Process_Id = openProcess.Id;
).
Правильный способ сделать это - правильно настроить базу данных с внешним ключом от ПРОДУКТА к ПРОЦЕССУ и использовать свойство навигации Process
на Product
, чтобы назначить процесс продукту.
Код будет выглядеть так:
myDataContext db = new myDataContext();
Process openProcess = new Process();
openProcess.Creation = DateTime.Now;
openProcess.Number = pNumber;
Product product = new Product();
product.Code = pCode;
product.Name = pName;
product.Process = openProcess;
db.Product.InsertOnSubmit(product);
db.SubmitChanges();
Поскольку Process
является свойством навигации Product
, вам не нужно вставлять Process
. Он будет вставлен автоматически, потому что вы вставляете «родителя» - Product
.