在前面两篇文章中,我们看过了Entity FramwWork中的基本查询,在Entity FrameWork 4中提供了POCO的方式,POCO的全称是:Plain Old CLR Object,即提供了对传统CLR对象的支持。
DataBase
首先我们来看数据库里面的两张表:
Model
在这里我们就像添加普通的实体一样:
EDMX
我们新增一个edmx文件,选择刚才的两个表:
生成完成后我们需要注意的一点是,将Custom Tool设置成空,意思呢就是不需要生成代码:
自定义Context
我们来自定义Context:
public class ProjectContext:ObjectContext
{
public ProjectContext()
: base("name=HJRightPlatEntities",
"HJRightPlatEntities")
{
_Projects = this.CreateObjectSet<Projects>();
_Modules = this.CreateObjectSet<Modules>();
}
public ObjectSet<Projects> Projects {
get {
return _Projects;
}
}
public ObjectSet<Modules> Modules
{
get
{
return _Modules;
}
}
private ObjectSet<Projects> _Projects;
private ObjectSet<Modules> _Modules;
}
我们来写个测试的方法:
[TestMethod()]
public void ProjectsTest()
{
using (ProjectContext ctx = new ProjectContext())
{
var pros = from pro in ctx.Projects
where pro.ProjectName.Contains("报文消息查询系统")
select pro;
Assert.AreEqual(1, pros.Count());
}
}
测试结果:
总结
在编写时要注意的是,编写的实体要跟在edmx中CSDL里面相对应,如果不同时,我们可以去修改实体,或则修改edmx中的CSDL跟Mappings。如果用过NHibernate的朋友,会感觉到现在的这个edmx就像一个mapping文件一样,不过还是有很大的差别的。