zoukankan      html  css  js  c++  java
  • 一步一步学EF系列2【最简单的一个实例】

    整个文章我都会用最简单,最容易让人理解的方式给大家分享和共同学习。(由于live Writer不靠谱 又得补发一篇)


    一、安装

       Install-Package EntityFramework

    二、简单例子演示

    复制代码
    /// <summary>
        /// 博客用户及随笔类
        /// </summary>
        public class BlogUser
        {
            /// <summary>
            /// 默认情况下属性被命名为ID、id或者[ClassName]Id,将映射为数据表中的主键
            /// 如果没有类似的命名,并且也未显示指明主键,则生成失败,引发异常
            /// </summary>
            public int BlogUserId { get; set; }
            public string BlogName { get; set; }
    
            /// <summary>
            /// 定义博客用户的随笔列表
            /// virtual表示该列表为延迟加载
            /// </summary>
            public virtual ICollection<Post> Posts { get; set; }
        }
    
        public partial class Post
        {
            /// <summary>
            /// 随笔的主键id
            /// </summary>
            public int PostId { get; set; }
            //  随笔的标题
            public string PostTitle { get; set; }
            /// <summary>
            /// 操作人
            /// </summary>
            public int BlogUserId { get; set; }
            /// <summary>
            /// 延迟加载博客用户
            /// </summary>
            public virtual BlogUser BlogUser { get; set; }
        }
    复制代码

    定义了两个实体,功能很简单,记录每个用户的随笔。 BlogUser 博客用户表 Post 随笔表

    三、创建DbContext

    复制代码
    public class BlogDbContext : DbContext, IDisposable
     {
            public BlogDbContext()
                : base()
            { }
           //实体集合
            public IDbSet<BlogUser> BlogUsers { get; set; }
           public IDbSet<Post> Posts { get; set; }
    }
    复制代码

    也很简单,就把两个实体加入进来

    以上三步最初级的功能就完成了。

    四、演示

    复制代码
    public ActionResult Index()
            {
                var   db= new BlogDbContext();
    
                //向数据库添加记录
                var blogUser = new BlogUser() { BlogUserId = 1, BlogName = "STONE" };
                db.BlogUsers.Add(blogUser);
                var post = new Post()
                {
                    PostId = 1,
                    PostTitle = "代码改变世界",
                    BlogUserId = 1
                };
                db.Posts.Add(post);
                //保存记录,返回受影响的行数
                int recordsAffected = db.SaveChanges();
                return View(db.Posts.ToList());
    
            }
    复制代码

    db.BlogUsers.Add(mode); 就是增加一条博客账号信息。然后把信息显示出来

    页面的代码

    复制代码
    <table border="1">
                <tr>
                    <td>
    
                        发布人姓名
                    </td>
                    <td>
                        随笔标题
    
                    </td>
                </tr>
    
    
                @foreach (var item in Model)
                {
                    <tr>
                        <td>@item.BlogUser.BlogName</td>
                        <td>@item.PostTitle</td>
                    </tr>
    
                }
    </table>
    复制代码

    前端运行后的效果

    image_thumb

    在查看数据库,已经自动创建了两张表

    image_thumb1

    image_thumb2

    在看看主外键关系也已经创建好了。

    以上都是最最基础的东西,自己先动手做一次,至于里面的所有细节,后面的将继续讲解

    第一次发布这个格式还不太会调整

    大家也可以加入QQ群进行交流(435498053)。

    作者:STONE刘先生 出处:http://www.cnblogs.com/liupeng/

  • 相关阅读:
    生成Ptc文件时候使用top camera比较好
    3delight 上关于ptex的讨论,3delight的开发者最后说ptex的内存表现并不比普通的贴图差,不知道是不是因为3delight不支持而故意说的
    闲来无事,写个算法关于11000放在含有1001个元素。。。
    寻最优数字筛选算法找出 “排列数列“ 对应的 “组合数列“
    入住博客园
    日常工作中收集整理的MSSQL 技巧
    序列化 和 反序列化 类
    对Singleton Pattern的一点修改
    快速幂 & 取余运算 讲解
    JDK动态代理实现
  • 原文地址:https://www.cnblogs.com/sylone/p/6097193.html
Copyright © 2011-2022 走看看