首页 > 数据库 >根据数据库记录动态生成C#类及其公共属性并动态执行的解决方案

根据数据库记录动态生成C#类及其公共属性并动态执行的解决方案

时间:2023-02-27 21:03:21浏览次数:40  
标签:set get C# 数据库 int Add plan 动态 public


问题:

C#中,想动态产生这么一个类:

public class StatisticsData

{

public string order_no { get; set; }

public int qty { get; set; }


public int ocv1_plan { get; set; }

public int ocv1_A { get; set; }

public int ocv1_Ba { get; set; }

// ....

public int ocv2_plan { get; set; }

public int ocv2_A { get; set; }

public int ocv2_B { get; set; }

// ....

public int ocv2_N { get; set; }


public int ocv3_plan { get; set; }

public int ocv3_A { get; set; }

// ....

public int ocv3_X { get; set; }

public int ocv4_plan { get; set; }

public int ocv4_A { get; set; }

// ....

public int ocv4_T { get; set; }

// ....

}


需要用代码动态生成,因为上面的ocv1,2...以及Rank等级都是从数据库中取记录,有什么样的记录,有多少条记录,不确定,因此需要动态生成。


其中部分公共属性是固定的,而另一部分则是动态的,比如:ocv数字_xxx。


可能有多个不定的ocv数字及_xxx,分别根据一个List<string> listOcv(工序列表)和一个Dictionary<string, string[]> dictRank(等级列表)得到:


List<string> listOcv = new List<string>();

listOcv.Add("ocv1");

listOcv.Add("ocv2");

listOcv.Add("ocv3");

listOcv.Add("ocv4");

//...

Dictionary<string, string[]> dictRank=new Dictionary<string, string[]>();

dictRank.Add("ocv1", new string[]{"plan","A","Ba"});

dictRank.Add("ocv2", new string[]{"plan","A","B", ..., "N"});

dictRank.Add("ocv3", new string[]{"plan","A", ..., "X"});

dictRank.Add("ocv4", new string[]{"plan","A", ..., "T"});

思考其解决方案,提示:用DynamicObject 类继承或.net反射。


标签:set,get,C#,数据库,int,Add,plan,动态,public
From: https://blog.51cto.com/JohnsonJu/6089170

相关文章

  • C#正则表达式的完全匹配、部分匹配及忽略大小写的问题
    问题的提出根据用户给定表达式,里面含有各种数学函数,如求绝对值,三角函数,平方、开方等,分别以类似ABS(表达式),Sin(表达式),ASin(表达式),POW(表达式)等形式表述。由于用户输入......
  • DataTable的行列转换及多表头HTML表格转Excel
    需要解决的问题:1、根据数据库中多个不同字段名称的以行形式表现的数据转为以列形式展现的数据;2、HTML多表头数据展示,做到数据“一个萝卜一个坑”,并求出多条数据的合计数据。......
  • C#源码匹配常用正则表达式(摘录)
    C#源码匹配:CSharpStringRegex=newRegex(@""".*?""|'.+?'",RegexOptions.Compiled);CSharpCommentRegex1=newRegex(@"//.*$",RegexOptions.Multiline|RegexOptions......
  • npm run 执行多任务的package.json配置
    有时需要在运行npmrun时,执行多个自定义的任务,此时可以使用增加scripts中条目,然后用一个总任务脚本将相关条目用&&串联起来的方式进行。我们知道:在package.json中,scripts里......
  • 新手小白根据Forexclub6点建议就能选择到最佳外汇经纪商
    选择外汇经纪商很重要,尤其是对于外汇交易者新手而言。在确定您计划使用的外汇交易员之前,Forexclub建议考虑以下6个因素产品丰富即使在这个阶段,您只对外汇交易感兴趣,拥有期......
  • Java应用【八】使用网络编程进行 socket 通信
    如果您觉得本博客的内容对您有所帮助或启发,请关注我的博客,以便第一时间获取最新技术文章和教程。同时,也欢迎您在评论区留言,分享想法和建议。谢谢支持!相关阅读:​​Java应用【......
  • AtCoder Beginner Contest 280 A-F 题解
    比赛链接A-PawnonaGrid模拟。#include<cstdio>#include<algorithm>#include<cstring>usingnamespacestd;constintN=15;intn,m,ans;chars[N];i......
  • CF813F - Bipartite Checking
    线段树分治。我们发现这个形式就是线段树分治,那么我们就线段树分治。我们考虑如何在按秩合并并查集上维护二分图的关系。假设我们现在在同一个并查集中的\(x\)和\(y\)......
  • Educational Codeforces Round 25
    EducationalCodeforcesRound25https://codeforces.com/contest/825ABCD没有什么意思,阅读理解题比较无聊(((EFG不难写,但是思维比较巧,知道就是知道,不知道就写不出emmA.B......
  • luffy数据库创建 User模块用户表 开启media访问
    1luffy数据库创建1.1创建用户创建库#创建luffy数据库#之前项目操作数据库,都是使用root用户,root用户权限太高了,在公司里,一般不会给你root用户权限#如果开发人员是r......