C#, WPF, LINQ. Как достать ID выбранного элемента из ComboBox?
Есть такой код:
public partial class Jewelry
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public Jewelry()
{
this.Check = new HashSet<Check>();
}
public int ID { get; set; }
public byte[] JewImg { get; set; }
public string JewName { get; set; }
public int CategoryID { get; set; }
public string Material { get; set; }
public long Pice { get; set; }
public int ParametersID { get; set; }
public virtual Category Category { get; set; }
public virtual Parameters Parameters { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<Check> Check { get; set; }
}
partial class Jewelry
{
public string JewelryGet
{
get
{
return JewName + ", " + Material + ", " + Category.Title + ", " + Pice;
}
}
}
partial class Client
{
public string FullName
{
get
{
return LastName + " " + FirstName + " " + SecondName;
}
}
}
Эти данные выводятся в КомбоБокс
cmbSelectClient.ItemsSource = ConnectClass.db.Client.ToList();
cmbSelectClient.DisplayMemberPath = "FullName";
Как достать ID той записи, которую я выбрал из ComboBox и записать в другую таблицу?
private void btnOrderDone_Click(object sender, RoutedEventArgs e)
{
//try
//{
Check check = new Check();
check.IDClient = ConnectClass.db.Client.FirstOrDefault(item => cmbSelectClient.SelectedItem.ToString() == item.FullName).ID;
check.IDJewelry = ConnectClass.db.Jewelry.FirstOrDefault(item => cmbSelectJewely.SelectedItem.ToString() == item.JewelryGet).ID;
check.Date = DateTime.Now;
check.TotalPrice = 100.0f;
ConnectClass.db.Check.Add(check);
ConnectClass.db.SaveChanges();
MessageBox.Show("Success!");
//}
//catch (Exception ex)
//{
// MessageBox.Show(ex.Message);
//}
}
Моя задача оформить заказ, то есть есть два ComboBox, в первом вывожу ФИО клиента, во втором данные о продукте. Задача, сохранить это в третью таблицу Чек, то есть, таблица чек имеет такой вид:
public partial class Check
{
public int ID { get; set; }
public int IDClient { get; set; }
public int IDJewelry { get; set; }
public System.DateTime Date { get; set; }
public Nullable<double> Commission { get; set; }
public double TotalPrice { get; set; }
public virtual Client Client { get; set; }
public virtual Jewelry Jewelry { get; set; }
}
Таблица клиент:
public partial class Client
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public Client()
{
this.Check = new HashSet<Check>();
}
public int ID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string SecondName { get; set; }
public string Phone { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<Check> Check { get; set; }
}
Надо данные выбранных из ComboBox элементов сохранить в таблицу чек и вывести в PDF, не могу понять до конца логику, как можно достать ID выбранного элемента из CombBox?
Вот то что я пытался сделать:
Check check = new Check();
check.IDClient = ConnectClass.db.Client.FirstOrDefault(item => cmbSelectClient.SelectedItem.ToString() == item.FullName).ID;
check.IDJewelry = ConnectClass.db.Jewelry.FirstOrDefault(item => cmbSelectJewely.SelectedItem.ToString() == item.JewelryGet).ID;