这个是linq to sql里面的知识,其实和mvc没什么关系。m => m.Theme_ID == Theme_ID这个其实就是一个查询条件。
Themes ThemeEdit = ThemeContext.Themes.First(m => m.Theme_ID == Theme_ID);
你可以这样子理解。m是一个Themes类的集合。我们的查询条件就是查找m这个集合中Theme_ID等于Theme_ID的数据集。后面的Theme_ID是一个变量,First是代表取第一条的意思。如果转成SQL相当于“select top 1 * from Themes where Theme_ID=” + Theme_ID.
相当于一个函数,这个函数的参数是一个叫m的,然后返回的是m.Theme_ID == Theme_ID
bool Func(Theme m) {
return m.Theme_ID = Theme_ID;
}
m => m.Theme_ID == Theme_ID 是一句 lambda 表达式。
ThemeContext.Themes.First(m => m.Theme_ID == Theme_ID) 意思是从 ThemeContext.Themes 中获取 Theme_ID 为 Theme_ID 的 Theme。
如果 ThemeContext.Themes 不存在这样的 Theme,将会抛出异常(如果想不抛异常而返回空,可用FirstOrDefault 代替 First)。