1

我有这个查询:

Course c = db.Courses.Find(id);
var pics = from pic in db.PersonnelInCourses
    where pic.PersonnelID == User.Identity.Name &&
        pic.Course.TitleID == c.TitleID &&
        pic.Course.BeginDate.Substring(0, 4) == PersianDateTime.Now.Year.ToString()
    select pic;

我发现 L2E 不支持.Substring()方法。那么,我怎样才能得到我想要的呢?!

坦克

4

3 回答 3

2

找到了!

string year = PersianDateTime.Now.Year.ToString();           
Course c = db.Courses.Find(id);
var pics = from pic in db.PersonnelInCourses
   where pic.PersonnelID == User.Identity.Name &&
       pic.Course.TitleID == c.TitleID && 
       pic.Course.BeginDate.Contains(year)                         
   select pic;

感谢大家的帮助...

于 2013-05-30T10:33:47.547 回答
1

尝试一下

Course c = db.Courses.Find(id);
var pics = from pic in db.PersonnelInCourses
    where pic.PersonnelID == User.Identity.Name &&
        pic.Course.TitleID == c.TitleID &&
        pic.Course.BeginDate.Substring(0, 4).Equals(PersianDateTime.Now.Year.ToString()) 
    select pic;

我不知道 BeginDate 的类型是什么?我是 DateTime,然后调用 ToString()。

于 2013-05-30T10:13:04.647 回答
0

“包含”的危险在于它会搜索整个字符串。根据您的日期格式,这可能会产生问题。例如:如果您的日期格式是“yyyyMMdd”,那么您不太可能会遇到问题(除非您计划在 1232 年之前插入日期)。如果它是“yyyyMMddHHmmss”,预计会出现随机且难以找到的错误。

于 2013-05-30T12:07:33.903 回答