zoukankan      html  css  js  c++  java
  • 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,
        [Password] [nchar](10) NULL,
     CONSTRAINT [PK_T_User] PRIMARY KEY CLUSTERED 
    (
        [Id] ASC
    )WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
    ) ON [PRIMARY]
    GO

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

    新建ADO.NET实体数据模型

    程序自动生成以下文件

    TestModel.edmx

    TestModel.Context.tt

    TestModel.Context.tt是生成数据操作实体类的模板

    namespace EFDEMO1
    {
        using System;
        using System.Data.Entity;
        using System.Data.Entity.Infrastructure;
        
        public partial class TestDBEntities : DbContext
        {
            public TestDBEntities()
                : base("name=TestDBEntities")  //TestDBEntities为App.config中的数据库连接字符串
            {
            }
        
            protected override void OnModelCreating(DbModelBuilder modelBuilder)
            {
                throw new UnintentionalCodeFirstException();
            }
        
            public DbSet<T_User> T_User { get; set; }
        }
    }

    TestModel.Designer.cs

    TestModel.edmx.diagram

    TestModel.tt

    TestModel.tt模板是生成T_User实体类的模板

    namespace EFDEMO1
    {
        using System;
        using System.Collections.Generic;
        
        public partial class T_User
        {
            public int Id { get; set; }
            public string Name { get; set; }
            public string Password { get; set; }
        }
    }

    修改数据库

    当修改数据库对象(如表),只需要在TestModel.edmx界面上右键点击从数据库更新模型,更新完成后保存即可自动生成相关代码(如实体类)。

    第三步 增删改查

    using System;
    using System.Data;
    using System.Linq;
    using System.Windows.Forms;
    
    namespace EFDEMO1
    {
        public partial class Form1 : Form
        {
            TestDBEntities entity = new TestDBEntities();
            
            public Form1()
            {
                InitializeComponent();
            }
    
            /// <summary>
            /// 新增
            /// </summary>
            private void Add()
            {
                T_User model = new T_User()
                {
                    Name = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss")
                };
                entity.T_User.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_User model = entity.T_User.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_User model = entity.T_User.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 = from p in entity.T_User select p;
                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();
            }
        }
    }
  • 相关阅读:
    kernel list 实践
    rpm打包
    void out2() const{
    剑指offer python版 两个链表的第一个公共结点
    剑指offer python版 数组中的逆序对
    剑指offer python版 字符串中第一个只出现一次的字符
    剑指offer python版 丑数 (只含有2,3,5因子)
    剑指offer python版 最长不含重复字符的子字符
    剑指offer python版 礼物的最大价值
    剑指offer python版 数字序列中某一位的数字
  • 原文地址:https://www.cnblogs.com/cmhunter/p/4224818.html
Copyright © 2011-2022 走看看