我有一个客户端可以导入excel文件,csv或制表符分隔文件的项目。这个文件被加载到我转换成SQLite数据库表的数据表中。我真的更喜欢使用强类型对象与数据表,所以有什么方法可以轻松地使用反射将创建的数据库表转换为强类型类? kicker是导入到应用程序中的文件总是不同的(即不同的列),所以我不能真正硬编码任何强类型的对象,它们总是必须随时生成。从数据表或数据库表生成类
5
A
回答
0
Ryan已经提出了正确的问题,并且我也只能认为强类型类的唯一好处是在设计或编译时,而不是在运行时。
也许你想在创建SQLlite表后在使用此表的另一个应用程序中构建一些强类型类。
在这种情况下,您可以查看T4 - Text Template Transformation Toolkit,因为它可以从查询中创建强类型类,以便您可以在编译时将这些类用于其他应用程序。
但是在你开始使用它之前,你应该知道T4是best kept Visual Studio secret之一。 ;-)
2
如果可能的话,您可以使用C#4的新dynamic
功能。更具体地说是ExpandoObject Class。
ExpandoObject
表示一个对象,其成员可以 动态地添加和在 运行时除去。
在获取更多信息以下链接看看:
4
从理论上讲,你可以使用类似Reflection.Emit的创建程序集,或即使通过生成代码文件并调用编译器将其构建到程序集中。
但是,我不知道这将如何有用。假设这些表的模式是在运行时确定的,那么这些生成的类的任何用法都将无法使用这些在不使用反射的情况下添加的强类型属性,并且此时您基本上正在处理反射的附加性能打击有点弱。 C#4.0中的动态类型可能会消除性能影响,但是您仍然增加了很多复杂性,而没有真正的好处。
相关问题
- 1. 生成数据库表
- 2. 如何从数据库表数据生成无序列表?
- 3. Haml从数据库生成表格
- 4. 从数据库生成表格
- 5. 从对象数据库生成列表
- 6. 从数据库表生成引用号
- 7. 从数据库中生成excel表格
- 8. 数据库集成和报表生成
- 9. 从SQL数据库中的数据生成MVC3图表
- 10. 从数据库检索的数据生成列表视图
- 11. 从两个数据库表生成嵌套的json数据
- 12. 从数据表生成Excel工作表
- 13. 从数据库生成特定数据?
- 14. Netbeans - 从数据库生成实体类
- 15. 从模型类生成数据库
- 16. nHibernate - 从数据库生成类?
- 17. 从数据库生成实体类
- 18. 从数据库生成CSS类?
- 19. 从访问数据库生成类
- 20. 从c#生成数据库模式类
- 21. 如何从数据库表中生成hiberate POJO类
- 22. 如何从实体类型生成数据库表?
- 23. 重新生成数据库与从模型生成的表
- 24. 生成表从数组数据
- 25. 生成从数据库
- 26. 从数据库生成
- 27. 自动生成PHPMyadmin数据库的数据库图表?
- 28. 从数据集和数据表中生成水晶报表
- 29. 数组或数据库表?
- 30. MS数据库表单生成器