[英]Injecting generic getters and setters to get better performance than reflection
[英]Making generic getters and setters
我有一个问题,我必须从架构中的所有表中获取列名及其值,并在网格中显示结果。 我已经使用了直接方法,但是我必须实现SqlSiphon结构。 为此,我必须对模式中每个Table的每一列进行getter和setter方法。
我应该使用什么来从表中动态获取列名称及其值。
SELECT * FROM INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_NAME = '" + @Tablename1 + "' AND TABLE_SCHEMA='dbo'"
最佳的动态解决方案是什么? 最好使用List,Dictionay或2d Array之类的东西来提供列名和列值?
一些建议:
编辑 :再读几遍后,我想我明白您的要求了-您已经有一个数据库/架构,并且想要自动创建SqlSiphon所需的实体类。 这称为“数据库优先”(与“模型优先”相对)。 但是,从SqlSiphon文档的简短扫描来看,它似乎不支持数据库优先。 这就是为什么要尝试将列放入网格中的原因-以便更轻松地手动为SqlSiphon创建实体类?
Edit2 :请注意,尝试在频繁修改其架构的数据库之上使用ORM会出现问题。 我的下一个猜测是,您正在尝试弄清楚如何在SqlSiphon中创建一个实体类,该实体类可用于检索数据库模式信息,例如表列? 我仍在努力了解您在这里实际要问的问题-也许您可以更新您的问题?
Edit3 :我认为您问题的答案是采用不同的设计方法-像SqlSiphon这样的ORM不能用于检索和修改数据库模式本身。
可能值得退后一步,与其他人如何解决类似问题进行比较。
通常,数据库中的每个表都代表一个实体,每个实体也都有一个类,并且可以使用ORM系统来避免重复工作。 因此,在典型的系统中,您有一个用于客户的表,一个用于发票的表,一个用于发票行的表等,然后是一个代表客户的类,一个发票类,一个发票行类等等。当您以后添加功能(以及可能的列/属性)时,您可以更改类,而不仅仅是查看数据库中的列-您当然可以用XML文档修饰它们并获得Intelisense的好处。
有许多ORM系统,每个都有其优缺点,但是我个人喜欢将LINQ to SQL添加到现有数据模型中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.