runliuv

runliuv@cnblogs

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  710 随笔 :: 0 文章 :: 127 评论 :: 98万 阅读
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

环境:

VS2019

SQL SERVER 2012

一、在数据库(db1)创建表结构

“db1”是数据库名,“Table1”是表名。

复制代码
USE [db1]
GO

/****** Object:  Table [dbo].[Table1]    Script Date: 2020/12/30 10:14:54 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[Table1](
    [aa] [bigint] IDENTITY(1,1) NOT NULL,
    [bb] [nvarchar](50) NULL,
    [cc] [nvarchar](50) NULL,
 CONSTRAINT [PK_Table1] PRIMARY KEY CLUSTERED 
(
    [aa] 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
复制代码

二、在VS里新建一个WINFORM项目

基于.NET FRAMEWORK 4.5.2

1.使用nuget下载“EntityFramework”,此时最新版本是6.4.4。

下载成功后,可以观察到app.config已被自动修改,在原有基础上新增了“configSections”、“entityFramework”两个配置节。原始只有“startup”。

复制代码
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
        <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
        <section name="entityFramework"
          type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
          requirePermission="false"/>
    </configSections>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2"/>
    </startup>

  <connectionStrings>
    <add name="Db1Context" connectionString="Data Source=localhost;Initial Catalog=db1;MultipleActiveResultSets=True;User ID=sa;Password=som;Pooling=true;" providerName="System.Data.SqlClient"/>
  </connectionStrings>
  
    <entityFramework>
        <providers>
            <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer"/>
        </providers>
    </entityFramework>
</configuration>
复制代码

 

2.新建“Table1”实体类,并设置主键和自增长列,与表结构保持一致

复制代码
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

namespace WindowsFormsEFdbFirst.DbModel
{
    public class Table1
    {
        [Key] //主键 
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]  //设置自增
        public long aa { get; set; }

        public string bb { get; set; }

        public string cc { get; set; }

    }
}
复制代码

3.新建“Db1DbContext”

复制代码
using System.Data.Entity;
using System.Data.Entity.ModelConfiguration.Conventions;
using WindowsFormsEFdbFirst.DbModel;

namespace WindowsFormsEFdbFirst.DbContext2
{
    public class Db1DbContext : DbContext
    {
        public Db1DbContext()
            : base("name=Db1Context")
        {
        }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            //移除复数表名
            modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
            
            base.OnModelCreating(modelBuilder);
        }

        public virtual DbSet<Table1> Table1s { get; set; }
    }
}
复制代码

4.界面上添加一个BUTTON,双击添加点击事件。

复制代码
private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                using (Db1DbContext db1 = new Db1DbContext())
                {
                    Table1 t1 = new Table1();
                    t1.bb = "bb" + DateTime.Now.ToString();
                    t1.cc = "c" + DateTime.Now.ToString();

                    db1.Table1s.Add(t1);
                    db1.SaveChanges();
                }
                MessageBox.Show("完成");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
复制代码

插入一条记录做演示。

 

posted on   runliuv  阅读(475)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
历史上的今天:
2016-12-30 获取本机IP
2015-12-30 c# .net sha256 16进制 64位 签名
点击右上角即可分享
微信分享提示