2016-07-15 11 views
0

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.

Antwort

1

Ich denke, ColumnAttribute.IsDbGenerated ist, was Sie suchen. In der Klassenzuordnung verwenden Sie etwas wie:

class Article 
{ 
    [Column(..., IsDbGenerated = true)] 
    public DateTime CDTimeStamp { get; set; } 
... 
+0

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