我在将数据从视图插入到我的 SQL Server 数据库时遇到了问题。
当我在视图中单击“创建”时,我收到错误消息,即不同表(如 Kunde/Customer 和 Ort/City)会丢失一个键。
每个表都有一个由 SQL Server Management Studio 定义的主键和不同的外键 (1:n)。主键由 SQL Server 自动生成。
应从视图中插入并应保存到不同表中的数据。
我的模型视图中的代码:
public class ViewModelKundeController
{
public string AnredeText { get; set; }
public string Vorname { get; set; }
public string Nachname { get; set; }
public string Strasse { get; set; }
public int Hausnummer { get; set; }
public string Telefon { get; set; }
public string EMail { get; set; }
public string Aktiv { get; set; }
public Nullable<System.DateTime> AGBDatum { get; set; }
public string Anmerkung { get; set; }
public string WhatsappAkzeptiert { get; set; }
public string WebAkzeptiert { get; set; }
public string AGBAkzeptiert { get; set; }
public string Postleitzahl { get; set; }
public string Ort { get; set; }
}
我的数据模型(用于我的 Viewmodel)是由实体框架连接自动生成的(也许有错误?)
DbContext
后代类:
public class KundeDBContext : DbContext
{
public DbSet<tbl_Kunde> Kunden { get; set; }
public DbSet<tbl_Ort> Orte { get; set; }
public DbSet<tbl_Anrede> Anrede { get; set; }
}
控制器代码:
// GET: Kunde/Create
public ActionResult Create()
{
return View();
}
[HttpPost]
public ActionResult Create(ViewModelKundeController viewmodel)
{
var kunde = new tbl_Kunde()
{
Vorname = viewmodel.Vorname,
Nachname = viewmodel.Nachname,
Strasse = viewmodel.Strasse,
Hausnummer = viewmodel.Hausnummer,
Telefon = viewmodel.Telefon,
EMail = viewmodel.EMail,
Aktiv = viewmodel.Aktiv,
AGBAkzeptiert = viewmodel.AGBAkzeptiert,
WebAkzeptiert = viewmodel.WebAkzeptiert,
WhatsappAkzeptiert = viewmodel.WhatsappAkzeptiert,
AGBDatum = viewmodel.AGBDatum,
Anmerkung = viewmodel.Anmerkung
};
var anrede = new tbl_Anrede()
{
AnredeText = viewmodel.AnredeText
};
var orte = new tbl_Ort()
{
Ort = viewmodel.Ort,
Postleitzahl = viewmodel.Postleitzahl
};
kdb.Kunden.Add(kunde);
kdb.Anrede.Add(anrede);
kdb.Orte.Add(orte);
kdb.SaveChanges();
return View();
}