實際上我試圖在Visual Studio中使用EntityFrameWrok 5將數據插入到MariaDB中。我在服務器本身上創建了數據庫,並在Visual Studio中導入了模型。即時通訊使用三個表格,並且它們已鏈接 一個drabe talbe,項目talbe和標籤表。 實體是:drawing(many --- 1)project(1 --- many)tag。 對於插入我使用下面的代碼。但是它拋出了一個DbUpdateEntityException,它告訴他他不能匹配繪圖和項目表之間的鍵,因爲兩個或更多的主鍵是相同的。我使用一個特定的主鍵進行數據繪圖,與表中的其他對象deffnetly不一樣。其他主鍵是AUTO_INCREMENT所以我想它試圖插入一個新的項目,但具有相同的項目編號,不工作,但我真的不明白它爲什麼這樣做。實體框架將數據添加到表
DateTime aktuellesDatum = DateTime.Now;
using (DMSContext db = new DMSContext())
{
foreach (ZeichnungInDB zeichnungInDB in zeichnungen)
{
zeichnungInDB.Volante_Index = getVolCountByDrawingNumber(zeichnungInDB.Zeichnungsnummer) + 1;
var zeichnung = new zeichnung()
{
Zeichnung_ID = zeichnungInDB.Dateiname + "_" + zeichnungInDB.Index + "_VOL_" + zeichnungInDB.Volante_Index + "_" + aktuellesDatum.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 + aktuellesDatum,
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,
};
db.zeichnungs.Add(zeichnung);
db.projekts.Add(projekt);
db.tags.Add(tag);
}
try
{
db.SaveChanges();
}
catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)
{
Exception raise = dbEx;
foreach (var validationErrors in dbEx.EntityValidationErrors)
{
foreach (var validationError in validationErrors.ValidationErrors)
{
string message = string.Format("{0}:{1}",
validationErrors.Entry.Entity.ToString(),
validationError.ErrorMessage);
// raise a new exception nesting
// the current instance as InnerException
raise = new InvalidOperationException(message, raise);
}
}
throw raise;
}
}
也許有人有問題的想法或解決方案。 (其中「ZeichnungInDB」是一個自定義對象和「zeichnungen」是的ObservableCollection)
另一個問題我有是,我impletmented日期時間至極一個字段是CURRENT_TIMESTSAMP但它僅示出了0000-00-00 00 :00:00這是爲什麼?
乾杯,Only3lue
我剛剛在heidiSQL-Tool中聲明瞭數據庫,並在Visual Studio中生成了模型,這就是我所做的。但我會測試你的tipp。 – Only3lue