Я хочу сохранить данные в 2 таблицы в моей базе данных. Я могу получить доступ к моей базе данных и сохранить данные в одной таблице. Но с 2 он больше не работает. Я думаю, это связано с тем, что данные поступают из одной формы, но данные разбиваются на две части: форма и одна или несколько строк таблицы должны быть заполнены от пользователя.Сохранение данных в несколько таблиц
Это мой код контроллера:
[HttpPost]
public ActionResult saveIndex(VersandformularModel xModel)
{
using (var ctx = new Versandformular_DEVEntities())
{
Formular lFormular = new Formular();
{
lFormular.Absender_Firma = xModel.ccFirma[0];
lFormular.Ansprechpartner = xModel.ccAnsprechpartner;
lFormular.Empfänger_Firma = xModel.ccEmpfängerFirma;
lFormular.Empfänger_Name = xModel.ccVorname + xModel.ccNachname;
lFormular.Empfänger_Straße = xModel.ccStraße;
lFormular.Empfänger_Land = xModel.ccLand;
lFormular.Empfänger_PLZ_Ort = xModel.ccPLZ;
lFormular.Empfänger_Bundesstaat = xModel.ccBundesstaat[0];
lFormular.Empfänger_Telefon = xModel.ccTelefonNr;
lFormular.Paketdienst = xModel.ccPaketdienst[0];
lFormular.Versand_Bemerkung = xModel.ccBemerkungVersand;
lFormular.Nächste_Lieferung = xModel.ccNächsteLieferung;
lFormular.Warenkosten = xModel.ccWarenkosten;
lFormular.Versandkosten = xModel.ccVersandkosten;
lFormular.Kostenstelle = xModel.ccKostenstelle;
};
ctx.Formular.Add(lFormular);
Artikel lArtikel = new Artikel();
{
foreach (var iiArtikel in xModel.ccTabelle)
{
lArtikel.ArtikelNr = iiArtikel.ccArtikelNr;
lArtikel.WarentarifNr = iiArtikel.ccWarentarifNr;
lArtikel.Anzahl = iiArtikel.ccAnzahl;
lArtikel.Einzelpreis = iiArtikel.ccEinzelpreis;
lArtikel.Gesamtpreis = iiArtikel.ccAnzahl * iiArtikel.ccEinzelpreis;
lArtikel.Anzahl_Pakete = iiArtikel.ccAnzahlPakete;
lArtikel.Fertig_verpackt = iiArtikel.ccFertigVerpackt;
lArtikel.Inhaltsbeschreibung = iiArtikel.ccInhaltsbeschreibung;
lArtikel.Inhalt_Bemerkung = iiArtikel.ccBemerkungInhalt;
ctx.Artikel.Add(lArtikel);
}
}
ctx.SaveChanges();
}
return Content("Hallo Welt");
}
, когда им посылки данных я всегда получаю DbEntityValidationException
здесь сущностей:
namespace Versandformular.Entity
{
using System;
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
public partial class Versandformular_DEVEntities : DbContext
{
public Versandformular_DEVEntities()
: base("name=Versandformular_DEVEntities")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
public virtual DbSet<Artikel> Artikel { get; set; }
public virtual DbSet<Formular> Formular { get; set; }
}
}
Можете ли вы добавить код для юридических лиц? Исключение, которое вы получаете, вызвано правилами проверки, поэтому мы должны иметь возможность видеть соответствующий код. – elolos
Не уверен, что это вызывает ошибку, но вы добавляете в контекст один и тот же «Artikel» несколько раз. Вы должны переместить 'Artikel lArtikel = new Artikel();' внутри 'foreach' – Rhumborl
@Rhumborl просто попробовал и не работал ... спасибо в любом случае – xFlowDev