码迷,mamicode.com
首页 > 其他好文 > 详细

EF框架step by step(2)—Model-First

时间:2016-01-13 17:30:50      阅读:209      评论:0      收藏:0      [点我收藏+]

标签:

这一篇主要说一下EF框架中,Model First做法,仍然采用上一篇的案例。但增加评论功能。首先打开Blog.edmx文件,在空白处右键,添加新实体Comment,如下图示:

技术分享

点击确定,关闭窗口。

第二步:在Comment实体上右键,选择Add—Scalar Property,为这个类添加CommentContent(string类型)属性和PostId(Int32)属性.

第三步:在左侧工具箱窗口,选择Association,为Post与Comment两个实体添加关联。具体如下图示:

技术分享

点击确定,关闭窗口。最后完成后Blog.edmx如下图示:

技术分享

第四步:在Blog.edmx空白处右键,选择Generate Database from Model... ,生成更新数据库的Sql语句,默认的文件名是Blog.edmx.sql。当然,这个文件里包含了原有的一些表的结构生成代码,各位可以选择,数据库中目前不存在的Comment表及相关约束等语句来执行。执行完成后,打开服务浏览器窗口,刷新,即可看到新增加的表comment,然后为表添加一些测试数据,注意外键的关联。

最后一步:当然就是写些代码,测试一下,具体如下:

技术分享
    class Program
{
static void Main(string[] args)
{
IList<BlogUser> blogUsers = TestEF.GetAllBlogUsers();

///遍历所有查询结果
foreach (var blogUser in blogUsers)
{
Console.WriteLine(blogUser);

///获取外键对象的内容
foreach (var post in blogUser.Posts)
{
Console.WriteLine("\t 随笔标题:{0}", post.PostTitle);

foreach (var comment in post.Comments)
{
Console.WriteLine("\t\t{0}", comment.CommentContent);
}
}
}


}
}

public static class TestEF
{
public static IList<BlogUser> GetAllBlogUsers()
{

///BlogDBEntities是继承于ObjectContext类,自动生成
///可以打开Blog.Desgner.cs文件找到
///原型: public partial class BlogDBEntities : ObjectContext
///可以理解为 他代表了当前数据库环境对象
///同时,在Blog.Desgner.cs里还可以找到两个实体BlogUser及Post
using (BlogDBEntities blogDB = new BlogDBEntities())
{

///采用Linq语法读取数据
///通过Include方法将子对象Post预先加载
IList<BlogUser> blogUsers = blogDB.BlogUsers.Include("Posts").ToList<BlogUser>();

foreach (var item in blogUsers)
{
foreach (var post in item.Posts)
{
//对于Comments对象,也进行了预加载
if (!post.Comments.IsLoaded)
{
post.Comments.Load();
}
}
}
return blogUsers;
}

}
}

public partial class BlogUser
{
public override string ToString()
{
return string.Format("编号:{0} 姓名:{1}", this.BlogID, this.BlogName);
}
}
技术分享

 

EF框架step by step(2)—Model-First

标签:

原文地址:http://www.cnblogs.com/weihengblogs/p/5127581.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!