У меня есть база данных SQL с таблицами, я создаю Модель ADO.NET EDM, получаю всю базу данных в виде сущностей. При создании новых объектов и записи в базу не получается создать несколько. И так, проблему я получаю с:
public partial class Contracts
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public Contracts()
{
this.Sales = new ObservableCollection<Sales>();
}
public int ContractID { get; set; }
public System.DateTime DateOfIssue { get; set; }
public System.DateTime DateOfExecution { get; set; }
public virtual Customers Customers { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ObservableCollection<Sales> Sales { get; set; }
}
Я пытаюсь создать новый Contracts так:
Contracts newContr = new Contracts
{
ContractID = mod.ContractID,
DateOfExecution = mod.DateOfExecution,
DateOfIssue = mod.DateOfIssue,
Customers = new Customers()
};
myBase.SaveChanges();
Customers:
public partial class Customers
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public Customers()
{
this.Contracts = new ObservableCollection<Contracts>();
}
public int CustomerID { get; set; }
public string Name { get; set; }
public string Address { get; set; }
public string TelNumber { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ObservableCollection<Contracts> Contracts { get; set; }
}
Но получаю следующую ошибку:
UpdateException: Entities in 'MyBaseEntities.Contracts' participate in the 'FK_Contracts_Customers' relationship. 0 related 'Customers' were found. 1 'Customers' is expected.
Есть ещё такая возможность, но не знаю, сработает ли она у вас, но давайте попробуем. Код я пишу по памяти, потому мелкие ошибки поправите сами.
1) Создаем и привязываем Клиента (при этом мы берем ID существующего клиента в бд)
var сustomers = new Customers(){CustomerID = 2};
2) Привязывем его к контексту
myBase.Attach(сustomers);
3) Создаем Contracts
var newContr = new Contracts
{
// ИД вы руками что ли запоняете? Это должен быть автоинкремент в БД
// ContractID = mod.ContractID,
DateOfExecution = mod.DateOfExecution,
DateOfIssue = mod.DateOfIssue,
Customers = сustomers
};
4) Добавляем его в контекст
myBase.Contracts.Add(newContr);
5) Сохраняем
myBase.SaveChanges();
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
подскажите, как с помощью SQL запроса получить два поля из разных таблиц
Одним UPDATE надо решить следующую проблему: Если m_bid != 0 - записать это значение в smaxИначе, записать в smax наименьшее из двух значений: m_bid из shops_table,...
Есть скрипт создающий изображение в canvas, это изображение получается сохранить в папку, а вот передать его по ftp не удается, он создает файл...