900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > Entity Framework系列之DataBase First

Entity Framework系列之DataBase First

时间:2023-11-15 05:27:26

相关推荐

Entity Framework系列之DataBase First

第一步 新建数据库和表

USE [TestDB]GO/****** Object: Table [dbo].[T_User] Script Date: 01/14/ 20:27:52 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE 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

第二步 实体数据模型

新建实体数据模型

程序自动生成以下文件

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();}}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。