【问题标题】:Fastest way to assign properties to class from datarow C#从数据行 C# 将属性分配给类的最快方法
【发布时间】:2015-09-06 08:28:01
【问题描述】:

现在我在做一个大项目,所以周围有很多数据和表格。

为了获得最佳实践,我为每个表和对象创建一个类

它是这样的:

public class Employee
{
    private String Name;
    public String Name
    {
        get
        {
            return Name;
        }
        set
        {
            Name = value;
        }
    }

    public Employee(int EmployeeID) 
    {
        /*
         GET DATA ROW AND ASSIGN IT TO EVERY PROPERTIE
         * 
         * Name = row("name")
         * AND DO THIS FOR EVERY PROPERTIE!
         * 
         */
    }
}

所以这里发生的事情是我必须从类构造函数中的查询中分配每个属性。

但是想象一个有 50 多列的表格,我必须这样做 50 多次,这需要很多时间。

有一种方法可以自动创建 50 多个属性并在类中分配 50 多个属性,而无需花费大量时间。

我只是想找到一种方法来创建一个自动从数据行分配属性的类,而不是将所有列字符串写入属性。类似 Entityt Framework 的东西,但由我完成。

问候和感谢

【问题讨论】:

  • 该代码甚至无法编译,因为您声明了两个具有相同名称的成员。 (看起来您应该只使用自动属性。)您是否有证据表明设置这些属性实际上是一个瓶颈?假设这些来自数据库,则数据库访问将大大超过琐碎任务所花费的时间。
  • 我写的sn-p快嘿嘿。我只想找到一种方法来创建一个自动从数据行分配属性的类,而不是将所有列字符串写入属性。类似 Entityt Framework 但由我完成的东西......
  • 所以你是说问题不在于执行时性能,而是编写代码的烦恼?如果是这样,请澄清您的帖子 - 它给人的印象是目前正在关注性能。
  • 谢谢乔恩 :) 我会的..

标签: c# class properties automation


【解决方案1】:

网上有大量示例可以从 dB 表和存储过程中创建 C# 类,研究这些和 POCO,例如:

Generate class from database table

http://www.codeproject.com/Articles/8397/C-Code-Generator-for-Stored-Procedures

你不是第一个遇到这种情况的,下次最好快速google一下。

【讨论】:

    【解决方案2】:

    您应该使用更好的实体框架代码优先方法,即使您的数据库已经创建,它也可以工作。

    使用工具生成类模型,并创建如下上下文:

      public class MyContext : DbContext
      {
          public MyContext (){}
           public DbSet<MyModel> MyModel { get; set; }
      }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-07
      • 1970-01-01
      • 1970-01-01
      • 2013-02-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多