Ich habe eine Datenbank mit einer Tabelle namens Artikel.LinqToSql Aufruf Standardmethode
Die Tabelle speichert Artikel und hat ein Feld CDTimeStamp. Das CDTimestamp Feld wurde wie folgt geändert, so dass es immer das richtige Erstellungsdatum hat:
ALTER TABLE [dbo].[Artikel] ADD CONSTRAINT [DF_Artikel_CDTimeStamp] DEFAULT (getdate()) FOR [CDTimeStamp]
GO
Also, wenn ich versuche, einen Artikel zu schreiben, ich einen Fehler. Der Artikel wird wie folgt hinzugefügt:
public void AddArticle()
{
this.Open();
Article article = new Article();
article.Description = "";
article.ArticleNr = GetArticleNumber();
article.Barcode = GetBarcode(); //EAN
article.Branch = GetBranch(); // 3digit number
article.Company = GetCompany(); // 1 or 2
article.Preis = GetPrice();
article.PreisNew = GetNewPrice();
//article.CDTimeStamp = DateTime.Now;
_OutDataContext.Artikel.InsertOnSubmit(article);
try
{
this.Submit();
}
catch (Exception e)
{
throw;
}
this.Close();
}
Der Fehler, den ich bekommen ist:
SqlDateTime Überlauf. Muss zwischen 1/1/1753 12:00:00 Uhr und 12/31/9999 23:59:59 PM sein.
Wenn ich Kommentar- //article.CDTimeStamp = DateTime.Now;
ein Datetime erstellt und eingefügt, aber der getdate() Standardwert eingefügt werden soll und nicht den Wert ich in meinem Programm erstellen. Meine Frage ist: Gibt es einen Konfigurationseintrag oder etwas Ähnliches, das den Aufruf der Standardfunktion ermöglicht? Das Datenbankfeld darf nicht null sein.
P.S. Ich war mir nicht ganz sicher, wie ich diese Frage nennen sollte. Bitte zögern Sie nicht, sie zu bearbeiten, wenn Sie einen korrekeren Titel kennen.
Sehr einfache Antwort danke. FYI Im dbml explorer konnte ich eine Eigenschaft festlegen, die "Auto Generated Value" genannt wird und dann das IsDbGenerated-Attribut erzeugt. – Bongo