zoukankan      html  css  js  c++  java
  • 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;
            }
        }
    }
  • 相关阅读:
    HtmlEncode 和 HtmlDecode
    Visual Studio .Net 的一些小技巧(2)
    Array和ArrayList的区别
    c#中 ?? 是什么意思?
    带有图片预览功能的上传表单 上传预览
    Js实现Repeater全选/反选 功能 终极解决方案
    处理URL重写后postback重写失效的问题 .browser文件
    在TreeView中使用CheckBox(c#)
    SQL操作全集
    智能仓库管理系统方案(一)
  • 原文地址:https://www.cnblogs.com/liessay/p/12905535.html
Copyright © 2011-2022 走看看