2012-02-11 75 views
0

我是linq和linq2SQL的新手。我完成了我的功課,即發現了許多針對類似問題的結果和答案。似乎缺乏對linq和linq2SQL的更深入的理解,我正處於一種理智的境地。Linq2SQL,投在映射?

我有一個簡單的html和js前端的web應用程序。我通過ajax xmlhttprequests與我的aspx交換數據。所有的數據自然會出現,並且應該以字符串的形式出現。

我所試圖做的事:

private DateTime _date; 

    [Column(Storage = "_date", Name = "date", DbType = "date", CanBeNull = false)] 
    public string date 
    { 
     get { return this._date.ToString("yyyy-MM-dd"); } 
     set { this._date = DateTime.ParseExact(value, "yyyy-MM-dd", null); } 
    } 

在我的aspx的字符串轉換爲日期時間而不是我想只通過在弦上,並在get和set做轉換。運行此代碼會給我一個「無效的投射」錯誤。

我在做什麼是通過desing根本不應該做的?我的方法錯了嗎?我不希望別人爲我寫代碼。我不介意挖掘參考文獻,但我不知道從哪裏開始。所以如果有人指出我正確的方向,我將不勝感激。

回答

0

解決方案現在:

[Column(Name = "date", DbType = "date", CanBeNull = false)] 
public string date { get; set; } 

Apperently LINQ或「誰」負責自己看着辦它自己的鑄造出,如果你讓它。現在這對我來說已經足夠了。

我有這種感覺,後面我會遇到類似的鑄造問題,並且可能需要不同的解決方案。如果是的話,我會更新這個線程。

0

無論投射問題是什麼,它都不在您顯示的代碼中。

在getter/setter中轉換和從DateTime值轉換是一件非常合理的事情。在您的情況下可能發生的唯一情況是您得到FormatException「字符串未被識別爲有效的DateTime」。如果傳入的值與您的格式中的有效時間字符串不匹配 - 您目前不處理此操作。

+0

謝謝你碎玻璃。我確實遇到了一個有價值的問題。上面提到的錯誤現在消失了。但是,現在我在'System.Data.Linq.Mapping.PropertyAccessor + Accessor'3 [T,V,V2]上收到GenericArguments [2],'System.DateTime',違反了'V2'類型的約束。 – mazerraxuz 2012-02-12 19:57:50