با درود
مهندس حاجی شریفی ببخشید که با سولات مبتدی ام وقت شما بزرگوار رو میگیرم
برنامه به این شکل هست که برای هر نفر یک سری اطلاعات میگیره
مثلا ممکنه علی محمدی اطلاعات اولیه و اطلاعات دانشگاه و هم اسکن آزمایشاتش رو بخواهیم ذخیره کنیم
من با روش ADO ایجاد روابط رو میتونم انجام بدم ولی با EF مشکل دارم، برای همین کدهای ایجاد کننده دیتابیس رو اینجا ارسال میکنم
و همچنین الان مشکلم اینه که دارم جدا جدا کدهارو توی UserControl درج میکنم
یعنی اطلاعات اولیه یک UserControl دارد
اسکن آزمایشات یک UserControl دارد
اطلاعات دانشگاه یک UserControl دارد
حالا تمام این UserControl ها رو بر روی یک فرم به نام frmUser قرار دادم
الان باید رابطه بین هر کدام از این UserControl ایجاد کنم
مشکلم نوشتن کدهاش هست
این کدهای EF دیتابیسم برای جدول Govahiha هست
public class Govahiha
{
[Key]
public int Id { get ; set ; }
public int Contact_ID { get ; set ; }
public string SerialKartMeli_KartMeli { get ; set ; }
public bool NoeKartMeli { get ; set ; }
public virtual Contact Contact { get ; set ; }
}
این هم کدهای EF دیتابیسم برای جدول Govahiha هست
public class Contact
{
// اطلاعات پایه در هنگام اولین افزودن
/// <summary>
/// آیدی جدول کانتکت
/// </summary>
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get ; set ; }
/// <summary>
/// نام - اطلاعات اولیه
/// </summary>
[MaxLength(70)]
public string Name { get ; set ; }
/// <summary>
/// نام خانوادگی - اطلاعات اولیه
/// </summary>
[MaxLength(70)]
public string NameKhanevadegi { get ; set ; }
public virtual ICollection<Govahiha> Govahihas { get ; set ; }
}
اینم هم کدهای EF بخش Contact که زیر UserControl که برای درج اطلاعات بخش اطلاعات اولیه بر روی frmUser قرار گرفته است
public bool DbSave()
{
try
{
if (string.IsNullOrEmpty(txtName_EtelaatAvaliyeh.Text))
{
MessageBox.Show("نام مخاطب وارد کنید") ;
return false ;
}
using (var context = new CafeContext())
{
Contact row ;
if (this.m_Contact_ID > 0)
{
//UPDATE
row = context.Contacts.Find(this.m_Contact_ID) ;
if (row == null) return false ;
}
else
{
//INSERT
row = new Contact() ;
}
row.Name = txtName_EtelaatAvaliyeh.Text ;
row.NameKhanevadegi = txtNameKhanevadegi_EtelaatAvaliyeh.Text ;
context.Entry(row).State = this.m_Contact_ID > 0 ? EntityState.Modified : EntityState.Added ;
context.SaveChanges() ;
this.m_Contact_ID = row.Id ;
}
FarsiMessageBox.MessageBox.Show("اطلاع", "مخاطب با موفقیت ذخیره شد", FarsiMessageBox.MessageBox.Buttons.OK, FarsiMessageBox.MessageBox.Icons.Information) ;
return true ;
}
catch
{
FarsiMessageBox.MessageBox.Show("اخطار", "عملیات انجام نشد", FarsiMessageBox.MessageBox.Buttons.OK, FarsiMessageBox.MessageBox.Icons.Error) ;
return false ;
}
}
اینم هم کدهای EF بخش Govahiha که زیر UserControl که برای درج اطلاعات بخش گواهی ها بر روی frmUser قرار گرفته است
public bool DbSave()
{
try
{
if (string.IsNullOrEmpty(txtSerialKartMeli_KartMeli.Text))
{
MessageBox.Show("نام مخاطب وارد کنید") ;
return false ;
}
using (var context = new CafeContext())
{
Govahiha row ;
if (this.m_Govahiha_ID > 0)
{
//UPDATE
row = context.Govahihas.Find(this.m_Govahiha_ID) ;
if (row == null) return false ;
}
else
{
//INSERT
row = new Govahiha() ;
row.Contact_ID = m_Govahiha_ID ;
}
row.SerialKartMeli_KartMeli = txtSerialKartMeli_KartMeli.Text ;
if (rdoJadidSerial_KartMeli.Checked)
{
row.NoeKartMeli = true ;
}
else if (rdoGhadimSerial_KartMeli.Checked)
{
row.NoeKartMeli = false ;
}
row.SerialKartMeli_KartMeli2 = txtSerialKartMeli_KartMeli2.Text ;
if (rdoJadidSerial_KartMeli2.Checked)
{
row.NoeKartMeli2 = true ;
}
else if (rdoGhadimSerial_KartMeli2.Checked)
{
row.NoeKartMeli2 = false ;
}
//row.ShomarehMeli = txtShomarehMeli_EtelaatAvaliyeh.Text ;
//row.Taahol = cmbNooZanashoii_EtelaatAvaliyeh.Text ;
//row.TarikhTavalod = mskTarikhTavalod_EtelaatAvaliyeh.Value ;
//context.Entry(row).Property(r => r.m_Contact_ID).IsModified = true ;
context.Entry(row).State = this.m_Govahiha_ID > 0 ? EntityState.Modified : EntityState.Added ;
context.SaveChanges() ;
this.m_Govahiha_ID = row.Id ;
}
FarsiMessageBox.MessageBox.Show("اطلاع", "با موفقیت ذخیره شد", FarsiMessageBox.MessageBox.Buttons.OK, FarsiMessageBox.MessageBox.Icons.Information) ;
return true ;
}
catch
{
FarsiMessageBox.MessageBox.Show("اخطار", "عملیات انجام نشد", FarsiMessageBox.MessageBox.Buttons.OK, FarsiMessageBox.MessageBox.Icons.Error) ;
return false ;
}
}