Linq2SQL,在映射中投射?

时间:2012-02-11 16:07:29

标签: linq linq-to-sql

我是linq和linq2SQL的新手。我完成了我的作业,即找到了许多针对类似问题的结果和答案。似乎缺乏对linq和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处进行转换。运行此代码会给我一个“无效的强制转换”错误。

我是否尝试做一些根本不应该做的事情?我的方法有误吗?我不希望别人为我编写代码。我不介意挖掘参考文献,但我不知道从哪里开始。所以如果有人指向我正确的方向,我将非常感激。

2 个答案:

答案 0 :(得分:0)

无论播放问题是什么,它都不在您展示的代码中。

在getter / setter中转换为DateTime值是一个非常合理的事情。您的方案中唯一可能发生的事情是您得到FormatException“字符串未被识别为有效的DateTime”。如果传入的值与格式中的有效时间字符串不匹配 - 您目前无法处理此问题。

答案 1 :(得分:0)

现在的解决方案:

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

如果你愿意,那么linq或者“谁”负责人可以自己计算出它。现在这对我来说已经足够了。

我觉得我以后会遇到类似的铸造问题,可能需要不同的解决方案。如果是这样,我将更新这个帖子。