c#利用反射+特性实现简单的实体映射数据库操作类(表与类的映射)

开始之前首先需要了解 特性Attribute; 说穿了特性也就是一些声明信息;我们在运行的时候可以用反射获取这些声明;

所想我们试想下;我们新建一个类用来存放数据库表中的信息; 那我们是不是需要在该类中有专门存放该表字段信息的类的字段呢?(这里说的是存放表中的全部字段信息)

  在想想下,描述一个数据库字段需要哪些信息; 二类中字段可以满足哪些信息吗!  所以我们需要对该字段进行描述 ,比如说字段名称呀,字段数据类型呀,字段数据类型长度呀,还有有是否为主键呀?

                                  我也是初学者 我这里只是说最基础的

建立特性类;

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;

namespace DataTransfer
{
    [AttributeUsage(AttributeTargets.Property,AllowMultiple=false,Inherited=false)]
     public class FieldAttribute:Attribute
    {
        private string _Fields;
        /// <summary>
        /// 字段名称
        /// </summary>
        public string Fields
        {
          get { return _Fields; }

        }

        private  DbType _Dbtype;
        /// <summary>
        /// 字段类型
        /// </summary>
        public DbType Dbtype
        {
          get { return _Dbtype; }

        }

        private int _ValueLength;
        /// <summary>
        /// 字段值长度
        /// </summary>
        public int ValueLength
        {
          get { return _ValueLength; }
        
        }
        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="fields"> 字段名</param>
        /// <param name="types"> 字段类型</param>
        /// <param name="i"> 字段值长度</param>
         public FieldAttribute(string fields,DbType types, int i)
        {
            
             _Fields=fields;
             _Dbtype=types;
           
                _ValueLength=i;
        }
    }
}

using Sy

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在C#中将实体映射到SQLite数据库,可以使用ORM(对象关系映射)框架,比如EF Core和Dapper等。以下是使用EF Core的一个简单示例: 1. 首先,需要安装EF Core和SQLite包。可以使用NuGet包管理器或手动下载并添加到项目中。 2. 创建SQLite数据库文件并打开它。可以使用SQLite Studio或其他SQLite客户端。 3. 创建一个实体,例如: ```csharp public class Person { public int Id { get; set; } public string Name { get; set; } public int Age { get; set; } } ``` 4. 创建DbContext,指定连接字符串和实体: ```csharp using Microsoft.EntityFrameworkCore; public class MyDbContext : DbContext { public DbSet<Person> People { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { optionsBuilder.UseSqlite("Data Source=database.db"); } } ``` 5. 在C#代码中,使用DbContext连接到SQLite数据库,并将实体映射数据库表。以下是一个示例代码: ```csharp using System.Linq; //连接到SQLite数据库 using (var db = new MyDbContext()) { //创建Person表 db.Database.EnsureCreated(); //插入新记录 var person = new Person { Name = "John Doe", Age = 30 }; db.People.Add(person); db.SaveChanges(); //查询记录 var people = db.People.ToList(); //输出结果 foreach (var p in people) { Console.WriteLine($"Id: {p.Id}, Name: {p.Name}, Age: {p.Age}"); } } ``` 这样,就可以将实体映射到SQLite数据库中,可以方便地进行CRUD操作

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值