【.NET】T4模板——SSDL To SQL10.tt

        很多人喜欢模板,因为合理地使用工具可以帮我们少写很多代码,可是模板的复杂性却又让很多人在使用中困难重重.

 

        我们在ITOO项目中,使用了DB FirstModelFirst相结合的方式实现实体数据的映射.说得详细一点就是先将PowerDesigner设计的实体图导入数据库生成表,然后去掉外键关联,只保留主键.使用EFDBFirst生成Model,Model中手动添加关联关系,再根据模型生成数据库.

 

        这样做有点繁琐,不过好处多多.首先避免了再次手动画Model,实体既多又容易出错,其次,如果数据库中有外键关联的话,映射到Model中会生成多余的属性,还需要我们手动维护.综合以上因素,我们选择二者结合的方式.

 

        不过,在操作过程中还是会有错误.因为以上过程是自动映射,必然使用到了模板,而这里正是大量使用了T4模板(.tt文件).下面我要说的就是从SSDL生成SQL脚本时.tt文件.上篇博客中已经学习了.edmx文件的xml内容,已经知道SSDL描述了表,列,关系,主键及索引等数据库中存在的概念..edmx页面空白处右键,选择"根据模型生成数据库",正常情况下会生成sql语句不正常情况下呢,模板也不是特别好使的,下图就出错了,我们来看一下:

            


        分析了很久终于找到问题所在,大家可以双击错误列表的提示信息,跟踪到弹出文件,SSDLToSQL10.tt.文件内容如下所示:




        我知道很多人看到密密麻麻的代码页面尤其是这种可读性非常差的拼接类型的代码,都匆匆关闭了可是问题就出在这里.找到上面被红色框出的一行代码DbConfiguration.SetConfiguration(newTemplateDbConfiguration());果断删掉.保存,生成,错误消失

 

       之前我尝试了很多方法,比如修改配置文件之类的,后来想想最容易出错的还是模板.有些东西因为不熟悉才不敢碰,可是若永远不碰,就没个日子熟悉了。



博客模块使用说明书 附加SQL Server 2000数据库 (1)将App_Data文件夹中的两个文件拷贝到SQL Server 2000安装路径下的Data文件夹中。 (2)打开SQL Server 2000中的“企业管理器”,然后展开本地服务器,在“数据库”数据项上单击鼠标右键,在弹出的快捷菜单中选择“所有任务”/“附加数据库”菜单项。 (3)将弹出“附加数据库”对话框,在该对话框中单击“ ”按钮,选择所要附加数据库的.mdf文件,单击“确定”按钮,即可完成数据库的附加操作。 配置IIS (1)依次选择“开始”/“设置”/“控制面板”/“管理工具”/“Internet信息服务(IIS)管理器”选项,弹出“Internet信息服务(IIS)管理器”窗口,如图1.1所示。 图1.1 “Internet信息服务(IIS)管理器”窗口 (2)选中“默认网站”节点,单击右键,选择“属性”,如图1.2所示。 图1.2 选择“属性”菜单项 (3)弹出“默认网站 属性”对话框,如图1.3所示,单击“网站”选项卡,在“IP地址”下拉列表中选择本机IP地址。 图1.3 默认网站 属性 (4)单击“主目录”选项卡,如图1.4所示。单击“浏览”按钮,弹出“浏览文件夹”对话框,选择您的网站路径,单击【确定】按钮。 图1.4 “主目录”选项页 (5)选中首页文件,单击鼠标右键,在弹出的菜单中选择“浏览”菜单项。 使用说明 使用该程序,读者需要下载:FreeTexBox..dll和URLRewrite.dll(这两个.dll文件可在微软官方网站上下载)。粘贴到Bin文件夹下。 运行“BlogIndex.aspx”文件,进入主页面,如图1.5所示。在本博客世界中,用户可注册自己的博客帐户,然后添加文章,并将其显示在博客首页中。 图1.5 程序主页面 单击用户登录处的“注册”按钮,注册博客帐户,然后进行登录,进入个人博客管理页面,如图1.6所示。在这里可用户可添加文章及管理文章,还可添加个人通讯录。 图1.6 个人博客管理页面 单击用户登录处的“管理员登录”超链接,进入管理员登录页面,如图1.7所示。输入管理员密码mrsoft,及验证码,单击“确定”按钮,进入后台主页面,如图1.8所示。在后台,管理员可管理注册的博客用户信息、评论信息、留言信息、文章类型等。 图1.7 管理员登录页面 图1.8 后台管理主页面
评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值