您知道任何可以为我提供基本 DB 模式方法和属性(、、、等)的 T4GetTables
模板GetColumns
吗MapSqlTypesToClr
?
我知道检索这些信息很容易,但是围绕它有很多额外的辅助函数,那么为什么要重新发明轮子呢?
你可能已经知道了,但我会在这里留下一个可能的解决方案。
SubSonic 3 使用 T4 进行代码生成,它的 db inspector 对你来说应该绰绰有余。看看:http ://subsonicproject.com/
这是一个 T4 模板,它将架构转储到 ac# 静态类库,可以执行您想要完成的操作: codepaste.net 片段
我无法在此处粘贴代码,因为语法荧光笔不喜欢 T4 标记(谁喜欢?)。
这将允许您像这样获取列名:
string columnName= dbSchema.Tables.Products.Columns.QuantityPerUnit.ColumnName;
不确定 T4 的位置在哪里,但您可以尝试Wizardby:它可以执行数据库模式逆向工程并返回一个包含所有表和列的漂亮Schema对象。至于将DbType
s 映射到 CLR 类型,您需要一个适当的IDbTypeMapper
(我认为SqlServer2005TypeMapper会这样做)。