petapoco-SQLServer模型增加注释
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了petapoco-SQLServer模型增加注释,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4146字,纯文字阅读大概需要6分钟。
内容图文
![petapoco-SQLServer模型增加注释](/upload/InfoBanner/zyjiaocheng/489/9d4013eb451c4bb19da52b8b644dd9fe.jpg)
获取注释基本原理是调用数据库::fn_listextendedproperty函数,获取扩展属性MS_Description
technet 参考资料:sys.fn_listextendedproperty (Transact-SQL)
一、首先是 PetaPoco.Core.ttinclude
1、106行原始:
public string SequenceName; public bool Ignore;
新建Description字段,这个是表的注释
public string SequenceName; public bool Ignore; public string Description;
2、140行原始:
public string SequenceName; public bool Ignore;
新建Description字段,这个是列的注释
public string SequenceName; public bool Ignore; public string Description;
3、517行原始:
foreach (var tbl in result) { tbl.Columns=LoadColumns(tbl); // Mark the primary key string PrimaryKey=GetPK(tbl.Name); var pkColumn=tbl.Columns.SingleOrDefault(x=>x.Name.ToLower().Trim()==PrimaryKey.ToLower().Trim()); if(pkColumn!=null) { pkColumn.IsPK=true; } }
修改后,调用函数获取表注释:
foreach (var tbl in result) { using(var cmdDesc=_factory.CreateCommand()) { cmdDesc.Connection = connection; cmdDesc.CommandText = TABLE_DESC_SQL; DbParameter p = null; p = cmdDesc.CreateParameter(); p.ParameterName = "@schema"; p.Value = tbl.Schema; cmdDesc.Parameters.Add(p); p = cmdDesc.CreateParameter(); p.ParameterName = "@table"; p.Value = tbl.Name; cmdDesc.Parameters.Add(p); using (var rdrDesc = cmdDesc.ExecuteReader()) { if (rdrDesc.Read()) tbl.Description = rdrDesc["value"].ToString(); } } tbl.Columns=LoadColumns(tbl); // Mark the primary key string PrimaryKey=GetPK(tbl.Name); var pkColumn=tbl.Columns.SingleOrDefault(x=>x.Name.ToLower().Trim()==PrimaryKey.ToLower().Trim()); if(pkColumn!=null) { pkColumn.IsPK=true; } }
4、572行原始,插入新代码,获取每一列的注释(return result 上面):
foreach (var col in result) { using (var cmdDesc = _factory.CreateCommand()) { cmdDesc.Connection = _connection; cmdDesc.CommandText = COLUMN_DESC_SQL; DbParameter pDesc = null; pDesc = cmdDesc.CreateParameter(); pDesc.ParameterName = "@schema"; pDesc.Value = tbl.Schema; cmdDesc.Parameters.Add(pDesc); pDesc = cmdDesc.CreateParameter(); pDesc.ParameterName = "@table"; pDesc.Value = tbl.Name; cmdDesc.Parameters.Add(pDesc); pDesc = cmdDesc.CreateParameter(); pDesc.ParameterName = "@column"; pDesc.Value = col.Name; cmdDesc.Parameters.Add(pDesc); using (var rdrDesc = cmdDesc.ExecuteReader()) { if (rdrDesc.Read()) col.Description = rdrDesc["value"].ToString(); } } }
5、672、688行原始,插入新的代码,存储调用函数的sql语句:
const string TABLE_DESC_SQL = @"SELECT value FROM ::fn_listextendedproperty(‘MS_Description‘, ‘user‘, @schema, ‘table‘, @table, null, null)"; const string COLUMN_DESC_SQL = @"SELECT value FROM ::fn_listextendedproperty(‘MS_Description‘, ‘user‘, @schema, ‘table‘, @table, ‘column‘, @column)";
至此已经从数据库获取到了注释,下面需要将注释插入到T4模板中!
二、修改PetaPoco.Generator.ttinclude
1、141行原始:
<# foreach(Table tbl in from t in tables where !t.Ignore select t) { #> <# if (string.IsNullOrEmpty(tbl.Schema)) { #> [TableName("<#=tbl.Name#>")] <# } else { #>
添加表的 Description 注释:
<# foreach(Table tbl in from t in tables where !t.Ignore select t) { #> /// <summary> /// <#=tbl.Description??""#> /// </summary> <# if (string.IsNullOrEmpty(tbl.Schema)) { #> [TableName("<#=tbl.Name#>")] <# } else { #>
2、167行原始:
<# foreach(Column col in from c in tbl.Columns where !c.Ignore select c) { // Column bindings #> <# if (TrackModifiedColumns) { #>
添加列的 Description 注释:
<# foreach(Column col in from c in tbl.Columns where !c.Ignore select c) { // Column bindings #> /// <summary> /// <#=col.Description??""#> /// </summary> <# if (TrackModifiedColumns) { #>
这样就改完了,打开database.tt按ctrl+s就能更新获取到的注释了!
另外GetInstance居然不是单例方法,这简直没法忍,果断改掉:
PetaPoco.Generator.ttinclude,38行修改为:
public static <#=RepoName#> GetInstance() { if (_instance!=null) return _instance; if (Factory!=null) return Factory.GetInstance(); //else // return new <#=RepoName#>(); return _instance = new <#=RepoName#>(); }
petapoco-SQLServer模型增加注释
标签:comm 需要 val code mil .exe 添加 actor target
本文系统来源:http://www.cnblogs.com/a-dou/p/7337049.html
内容总结
以上是互联网集市为您收集整理的petapoco-SQLServer模型增加注释全部内容,希望文章能够帮你解决petapoco-SQLServer模型增加注释所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。