Winform EF CodeFist方式连接数据库

直接生成ado.net 实体数据模型挺方便的,但只有一步步的手写代码才能更好的理解EF,在学习asp.net core过程中手写代码已经明白了怎么回事,但实现过程有些麻烦不知道如何记录,但Winform连接比较简单先记录一下

一、创建Winform程序,并在app.config中添加数据库连接字符串

  <connectionStrings>
    <add name="Northwind" 
         connectionString="Data Source=127.0.0.1;Initial Catalog=Northwind;Persist Security Info=True;User ID=sa;Password=******" 
         providerName="System.Data.Sqlclient"
         <!--providerName必须要有-->
    />
  </connectionStrings>

添加一个Model类Region

using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

namespace EFDemo.Model
{
    [Table("Region")]    //必须指定数据表名
    public class Region
    {
        [Key]
        public int RegionID { get; set; }
        public string RegionDescription { get; set; }
    }
}

一个Context类DataContext

using System.Data.Entity;
using EFDemo.Model;
namespace EFDemo.Data
{
    public class DataContext:DbContext
    {
        //name=app.config连接字符串的连接名称
        public DataContext() : base("name=Northwind")  
        {

        }
        //DBSet类表示一个实体的集合,用来创建、更新、删除、查询操作,DBSet<TEntity>是DBSet的泛型版本
        public DbSet<Region> Region { get; set; }     
    }
}

Form调用EF过程

namespace EFDemo.WinAPP
{
    public partial class Form1 : Form
    {
        //设置为私有的,本窗内才能访问
        private DataContext dataContext;
        public Form1()
        {
            InitializeComponent();

            //实例化DataContext
            dataContext = new DataContext();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            var regions = dataContext.Region.ToList();
            dataGridView1.DataSource = regions;
        }
    }
}
原文地址:https://www.cnblogs.com/liessay/p/12905535.html