我當前的項目我想添加來自ObservableCollection的新數據。 Collection包含一個包含我使用的三個表的所有屬性的大對象。我在Visual Studio 2015中使用了Entity Framework 5.0,MariaDB的最新版本和最新版本的mysql連接器。 不幸的是我沒有找到多個表的例子;只爲一個。 所以,我想這一點,但它總是拋出在EntityFramework.dll的DbEntityValidationException:實體框架將數據添加到多表表格
foreach(ZeichnungInDB zeichnungInDB in zeichnungen)
{
zeichnungInDB.Volante_Index = getVolCountByDrawingNumber(zeichnungInDB.Zeichnungsnummer)+1;
using (DMSContext db = new DMSContext())
{
var zeichnung = new zeichnung()
{
Zeichnung_ID = zeichnungInDB.Dateiname + "_" + zeichnungInDB.Index + "_VOL_" + zeichnungInDB.Volante_Index + "_" + new DateTime().ToShortDateString(),
Baugruppe = zeichnungInDB.Baugruppe,
Baugruppe_Hauptzeichnung = zeichnungInDB.Baugruppe_Hauptzeichnung,
Zeichnungsnummer = zeichnungInDB.Zeichnungsnummer,
Index = zeichnungInDB.Index,
Dateiname_Org = zeichnungInDB.Dateiname,
Aenderung_Ext = zeichnungInDB.Aenderung_Ext,
Aenderung_Int = "AE_" + zeichnungInDB.Projektnummer + new DateTime(),
Dokumententyp = zeichnungInDB.DokumentenTyp,
Dateiendung = zeichnungInDB.Extension,
Volante_Index = zeichnungInDB.Volante_Index,
MMS_Sachmerkmal = zeichnungInDB.Mms_Sachmerkmal,
Status = zeichnungInDB.Status,
Aenderung_Bemerkung_Txt = zeichnungInDB.Aenderung_Bemerkung_Text,
Einzel_Bemerkung_Txt = zeichnungInDB.Einzel_Bemerkung,
Ahang_Link = zeichnungInDB.Anhang_Link,
Einzel_Link = zeichnungInDB.Einzel_Link,
};
var projekt = new projekt()
{
Projektnummer = zeichnungInDB.Projektnummer,
};
var tag = new tag()
{
Tag1 = zeichnungInDB.Tag,
};
//var zeichnung = new zeichnung();
//zeichnung.
db.zeichnungs.Add(zeichnung);
db.projekts.Add(projekt);
db.tags.Add(tag);
db.SaveChanges();
}
}
我知道這些代碼是不是高性能。但我只是希望它能起作用。最好的辦法就是給數據庫集中一步,或者如何將新數據插入到一個數據庫訪問中,但是我不知道這樣做,因爲我在完成我的教育三年後辭掉了我的工作。 如果有人對我的問題有回答,這將是非常有幫助的。
乾杯, Only3lue
什麼是確切的例外呢?請添加堆棧。 –
可以顯示模型代碼嗎? – Sampath
okey我在數據庫中發現了錯誤。但我可以編碼這更多的perfomant然後它是現在? – Only3lue