我是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处进行转换。运行此代码会给我一个“无效的强制转换”错误。
我是否尝试做一些根本不应该做的事情?我的方法有误吗?我不希望别人为我编写代码。我不介意挖掘参考文献,但我不知道从哪里开始。所以如果有人指向我正确的方向,我将非常感激。
答案 0 :(得分:0)
无论播放问题是什么,它都不在您展示的代码中。
在getter / setter中转换为DateTime
值是一个非常合理的事情。您的方案中唯一可能发生的事情是您得到FormatException
“字符串未被识别为有效的DateTime”。如果传入的值与格式中的有效时间字符串不匹配 - 您目前无法处理此问题。
答案 1 :(得分:0)
现在的解决方案:
[Column(Name = "date", DbType = "date", CanBeNull = false)]
public string date { get; set; }
如果你愿意,那么linq或者“谁”负责人可以自己计算出它。现在这对我来说已经足够了。
我觉得我以后会遇到类似的铸造问题,可能需要不同的解决方案。如果是这样,我将更新这个帖子。