Entity Framwork系列之Model First

第一步 新建数据库

新建数据库TestDB2

第二步 ADO.NET实体数据模型

新建空的ADO.NET实体数据模型

新增实体(表)和类型(字段)

右键TestModel.edmx界面点击“根据模型生成数据库”,执行生成的TestModel.edmx.sql文件中的SQL语句。

第三步 增删改查

using System;
using System.Data;
using System.Linq;
using System.Windows.Forms;

namespace EFDEMO3
{
    public partial class Form1 : Form
    {
        TestModelContainer entity = new TestModelContainer();

        public Form1()
        {
            InitializeComponent();
        }

        /// <summary>
        /// 新增
        /// </summary>
        private void Add()
        {
            T_Action model = new T_Action()
            {
                Name = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss")
            };
            entity.T_Action.Add(model);
            entity.SaveChanges();
            Query();
        }

        /// <summary>
        /// 删除
        /// </summary>
        private void Delete()
        {
            if (listBox1.SelectedItem == null)
            {
                return;
            }
            int id = Convert.ToInt32(listBox1.SelectedItem.ToString().Split(‘-‘)[0]);
            T_Action model = entity.T_Action.Where(a => a.ID == id).FirstOrDefault();
            if (model != null)
            {
                entity.Entry(model).State = EntityState.Deleted;
                entity.SaveChanges();
                Query();
            }
        }

        /// <summary>
        /// 修改
        /// </summary>
        private void Edit()
        {
            if (listBox1.SelectedItem == null)
            {
                return;
            }
            int id = Convert.ToInt32(listBox1.SelectedItem.ToString().Split(‘-‘)[0]);
            T_Action model = entity.T_Action.Where(a => a.ID == id).FirstOrDefault();
            if (model != null)
            {
                model.Name = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss");
                entity.Entry(model).State = EntityState.Modified;
                entity.SaveChanges();
                Query();
            }
        }

        /// <summary>
        /// 查询
        /// </summary>
        private void Query()
        {
            listBox1.Items.Clear();
            var expr = entity.T_Action;
            foreach (var item in expr)
            {
                listBox1.Items.Add(string.Format("{0}-{1}", item.ID, item.Name));
            }
        }

        private void toolStripButton1_Click(object sender, EventArgs e)
        {
            Add();
        }

        private void toolStripButton4_Click(object sender, EventArgs e)
        {
            Edit();
        }

        private void toolStripButton3_Click(object sender, EventArgs e)
        {
            Delete();
        }

        private void toolStripButton2_Click(object sender, EventArgs e)
        {
            Query();
        }
    }
}
时间: 2024-10-14 08:16:43

Entity Framwork系列之Model First的相关文章

记录一次BUG修复-Entity Framwork SaveChanges()失效

目录 一. 前言 二.问题背景 三.问题描述 四.问题解决步骤 六.总结 一. 前言 这是笔者在参与一个小型项目开发时所遇到的一个BUG,因为项目经验不足对Entity Framwork框架认识不足导致了这一BUG浪费了一天的时间,特此在这里记录.给自己一个警醒希望大家遇到相同问题能帮助到大家. 注:笔者水平有限,大家发现错误望批评指正. 二.问题背景 1.本次项目是一个ASP.NET MVC项目,因为项目比较小的关系,我们采用的是基本三层和仓储模式进行开发.2.使用的ORM框架是Entity

Entity Framwork&mdash;&mdash;Left Join

在Entity Framework中使用left outer join 想必你们很多人都用过,但是为什么要那么用,我们一般也没去深究,这里稍微做一下探讨,不对的希望大家指正. 先准备我们的数据对象,这里使用最简单的one to many ,一个Category 对应多个Product,代码如下: class Category { public int CategoryId { get; set; } public string CategoryName { get; set; } } class

1.使用Entity Framwork框架常用的技术手段Code First 和Reverse Engineer Code First

提示:VS版本2013,  Entity Framwork版本5.0.0,Mysql数据库  使用Entity FrameWork的好处就不多说,直接上手如何使用.两种形式:1.将代码映射到数据库实体,使用的是Code First技术.2.将数据库实体转成代码,使用的是Reverse Engineer Code Fist技术. 一.Code First技术 1.建好项目,并加入一个名为CodeFirstDemo控制台应用程序项目. 2.配置.工具>>库程序包管理>>管理解决方案的N

实体entity、JavaBean、Model、POJO、domain的区别

Java Bean.POJO. Entity. VO , 其实都是java 对象,只不过用于不同场合罢了. 按照 Spring MVC 分层结构: JavaBean: 表示层 (Presentation Layer) Entity: 业务层 (Service layer) Dao: 数据访问层 (data access layer). Entity接近原始数据,Model接近业务对象- Entity:是专用于EF的对数据库表的操作, Model:是为页面提供数据和数据校验的,所以两者可以并存 P

Entity Framework系列教程汇总

阅读目录 一.EntityFramewoke入门教程系列 二.EF CodeFirst系列 翻译自http://www.entityframeworktutorial.net/,使用EF几年时间了,一直没有系统总结过,所以翻译这一系统文章作为总结,由于英语功底有限,翻译的可能有些问题,欢迎指正. 回到顶部 一.EntityFramewoke入门教程系列 Entity Framework入门教程(1)---Entity Framework简介 Entity Framework入门教程(2)---E

[Entity Framework] Dababase First, Model 与 Table 的更新策略

在初次使用EF的Database first时,总感觉能迅速的从Data Table 快速将Entity Model快速建立出来,省去以往还要hard code撰写POCO类的功夫,但数据表设计随着开发而更新了几个版本后,常常发生Model 与 Table对不起来的情况,即便执行了"从数据库更新模型",不是字段没反映出来.就是出现错误消息,常常最后只能选择全部砍掉重练.... 在初次使用EF的Database first时,总感觉能迅速的从Data Table 快速将Entity Model快速

Entity Framework系列之Code First

第一步:安装Entity Framework6.0 使用管理NuGet程序包界面安装EntityFramework 第二步:新建实体类 using System.ComponentModel.DataAnnotations; namespace EFDemo4 { public class User { [Key] public int Id { get; set; } public string Name { get; set; } } } 第三步:新建实体上下文类 using System.

Entity Framework系列之DataBase First

第一步 新建数据库和表 USE [TestDB] GO /****** Object: Table [dbo].[T_User] Script Date: 01/14/2015 20:27:52 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[T_User]( [Id] [int] IDENTITY(1,1) NOT NULL, [Name] [nvarchar](50) NULL, [Pa

【Entity Framework系列】Overview - 版本历史概览

EF版本 .net framework和IDE版本 主要功能 EF(or EF3.5) Visual Studio 2008 SP1 (.NET 3.5 SP1) 基本的O/R映射支持,使用DB First开发模式 EF 4 Visual Studio 2010 (.NET 4.0) 支持POCO实体 延迟加载 提高单元测试能力 自定义的代码生成机制 支持Model First开发模式 EF 4.1 NuGet 提供简化的DbContext接口 支持Code First开发模式 EF 4.1.1