1)投射(select)的含义:在查询中创建新对象
在
var result=_db.mycontext.where(a=>a.id==id).select(new {a.id,a.name,a.createtime}) foreach(var c in result) { Console.Writeline(result.); }
中为什么打印出来的结果形如
{id=001,name="benjamin",createtime="20121027"}
{id=002,name="John",createtime="20121011"}
{id=003,name="Chris",createtime="20121018"}
?甚至都不需要重写ToString()方法?
原因是编译器面对匿名对象时已经提供了默认的执行代码,以类似于对象初始化的方式输出属性的名称和值。
2)用FirstOrDefault()--可以简化where+select筛选
3)UpdateModel(model),TryUpdateModel(model)方法可以将传递过来的数据(form,querystring等)自动更新到匹配到属性相同的model里。
在new了一个model时,可以这样用。
4)如何使用ModelState验证:
1、给表单的相关属性添加上特性如:[Required]
2、在出现错误信息的位置加上
@Html.ValidationMessageFor(model => model.Name)
3、再在服务器端用ModelState.IsValid来验证