运用CodeSmith Studio实现C#项目构架

http://www.cnblogs.com/iCaca/category/80950.html

 

http://www.cnblogs.com/BlueBreeze/archive/2011/07/17/2108615.html

    1. 建立好数据库。假如数据库名叫SkillExchange。
    2. 启动CodeSmith,连接数据库。在Schema Explorer(如果主界面没有显示,在菜单View中将其打开)中点击“+”图标,在弹出的【Data Source Manager】中选择【Add】。在弹出【Data Source】对话框中,自己给该数据源取一个名称,【Provider Type】选择【SqlSchemaProvider】,点击【Connection String】右侧的按钮,可以帮助生成连接字符串。之后点几个OK,一个Close,数据库连接就大功告成了
    3.  点击 view>>Template Explorer在右侧可以看到 有一个 模板浏览窗口已经打开,选择WinformsLibrary 目录下的NetTiers.cst 双击打开  点击导航的 View>>properties windows 可以看到属性窗口被打开  开始配置 ChooseSourceDatabase   添加数据库链接 我用的是SqlServer数据库 所以链接为server=fanxinjian;database=exam;uid=sa;pwd=sa名称

    4. 注: 要双击才打开才可以配制
    5. CodeSmith Studio中,NetTiers模板中各个选项的一些解释
    6. Get started --required ----》》》 ChooseSourceDatabase  选择数据库 (你之前配制好的数据库) MappingFileMapping文件位置 (会根据output目录自动更改,不需要设置) OutputDirectory文件输出目录 RootNameSpace根节点的命名空间 01b) Filter by Individual Objects - ptional 

  1.   怎样用CodeSmith和建好的数据库生成一个有很多存储过程的网站。

    1,  构建数据库,注意数据库的表名必须以tbl开头,视图必须以vw开头,例如tblUserInfo,tblAdminInfo,vwUserInfo

    2,  建好数据库后就可以用CodeSmith了,首先选择CodeSmit

    下的CodeSmith Stdio打开。

    3,  打开后选择try(可上网搜注册机)

     

    4,  然后选择CodeSmith 4,1Samples下的NetTiers文件夹

        

     

    5,  打开文件夹后,右键单击NetTiers.cst文件,选择Execute

     

    6,首先要选择你的数据源,选择Choosing Source Database

     

    7选择右边带…的按钮

    8,单击Add按钮

     

    9,首先选择Provider Type,选择

    然后自己取一个名字,再点击右边带…的按钮

    找到自己的数据库

    10,选择后Ok就可以了,再退回到这里并且选择你建立的数据库

     

     

    11,修改你生产的网站的存储路径,在MappingFile中修改,注意下面的也要修改并且前面的都要一样,如图所示

     

    12,将下面的ExecuteSql改为true,

    InculdComponentLayer改为ServiceLayer,

    ProcedurePrefix改为TK_

     

    13,最后在点击下面的Generate就可以了

     

    在VS中的操作

    找到对应的文件夹打开

    对与下面的文件

     

    都要打开

    然后右击“引用”文件夹

     

    选择添加引用

    最重要的引用:

    再选择浏览

     

    找到对应的文件夹,下面的reference

     

    打开并且全选

    确定后就可以了,其他的都一样的,应用完后就可以了

    这时候利用CodeSmith就好了,你可以查看生成的文件以及自己的数据库,它已经在数据库中生成了许多常用的存储过程了,若还要添加就的在自己的前面加“/”.。在Vs中的解决方案中的各个空间也生成了许多的方法。

    1. NetTiers模板中各个选项的一些解释

    2. 名称解释
      NetTiers
      模板中的一些属性的解释
      ChooseSourceDatabase选择数据库
      MappingFileMapping文件位置(会根据output目录自动更改,不需要设置)
      OutputDirectory文件输出目录
      RootNameSpace根节点的命名空间
      Filter by Individual Objects - Optional
      EnumTables枚举表,表中的所有数据都会被用作枚举类型,要求:第一列为主键,第二列为唯一键,第三列为描述,必须添加到SourceTables
      SourceTables需要生成的表
      SourceViews需要生成的视图
      FrameworkGeneration - Optional
      AutoIncrementBuildVersion自动提升版本
      EntLibVersion微软企业库的版本V2或V3
      ExecuteSql生成后自动执行SQL       ----   这个必为true
      IncludeComponentLayer生成组建层(service或domain)
      IncludeDatabaseFeatures是否包含数据库特性(sql2005特有)----这个必选2005
      IncludeGenerateddate包含生成的日期(会在生成的文件中包含生成文件时的日期)
      IncludeUnitTest保函单元测试(可以选微软的VSTS或NUnit)
      IncludeWCFDataAttributes保函WCF属性(需要.net3.0)
      IncludeXmlAttributes保函XML属性
      LaunchVisualStudio生成结束后是否运行解决方案
      SerializeEntityState序列时包含化EntityState,在使用WebServices时非常有用
      SQLFolderNameSQL脚本输出的目录
      ViewReport生成完毕後显示报表
      Namespaces - Required
      BusinessLogicLayerNameSpace业务逻辑层命名空间(应该是实体层)
      ComponentLayerNameSpace组建层命名空间
      DataAccessLayerNameSpace数据访问层的命名空间
      UnitTestsNameSpace单元测试命名空间
      General - Advanced
      CompanyName公司名称,会被包含在AssemblyInfo.cs中
      CompanyURL公司网址
      SignAssemblySNK公钥
      WebLibrary - Advanced
      GenerateWebLibrary生成web控件
      IncludeDesignTimeSupport包含设计时支持
      Web - Advanced
      AttemptCreateLocalVirtualDirectory为webservice创建虚拟目录
      WebServiceOutputPathwebservice的本地路径
      WebServiceUrlwebservice的URL
      Website - Advanced
      GenerateWebsite创建web站点
      GenerateWebsiteAdmin创建简单的管理员界面
      IncludeAtlasLibrary包含微软的Ajax库
      IncludeAtlasToolkit包含Ajax扩展工具
      OverwriteWebConfig覆盖web.config文件
      UseWebAppProject使用web项目,需要安装AppProject补丁, 中文版不支持
      WebAdminSiteName管理员站点名称
      CRUD - Advanced
      CSPUseDefaultValForNonNullableTypes自定义存储过程为nullable类型使用默认值
      CustomProcedureStartsWith自定义存储过程的前缀
      DropStyle选择Entity的话生成後Drop删除已经生成的存储过程,选择All的话,会删除满足存储过程前缀,不满足自定义存储过程前缀的存储过程
      IncludeCustoms生成自定义存储过程
      IncludeDelete生成delete存储过程
      IncludeDrop是否生成drop语句,如果是则根据DropStyle生成
      IncludeFind生成Find存储过程
      IncludeGet生成get存储过程
      IncludeGetList生成GetList存储过程
      IncludeGetLisByFK生成根据外键查询的存储过程
      InclludeGetListByIX生成根据唯一键查询的存储过程
      IncludeInsert生成Insert存储过程
      IncludeManyToMany生成多对多关系
      IncludeRelations生成关联
      IncludeSave生成保存
      IncludeUpade生成更新
      IsolationLevel事务隔离级别
      ParseDbColDefaultVal使用数据库字段默认值初始化实体属性
      RetryEnabled允许重试,当执行出错时允许重试
      RetryMaxAttempts重试次数
      RetrySleepStyle重试等待类型
      RetrySleepTime重试间隔时间
      Storedprocedures - Advanced
      DeleteSuffix存储过程 delete 语句的前缀
      FindSuffix存储过程 find 语句的前缀
      GrantUser存储过程 grant 语句的前缀
      InsertSuffix存储过程 insert 语句的前缀
      ProcedurePrefix存储过程的前缀
      SelectAllSuffix存储过程 select all 语句的前缀
      SelectSuffix存储过程 select 语句的前缀
      UpdateSuffix存储过程 update 语句的前缀
      Code style - Advanced
      AliasFilePath别名路径
      BaseClassFormat基类 {0}Base
      ChangeUnderscoreToPascalCase将 _ 转换为 Pascal
      CollectionFormat子集 {0}Collection 一对多时,会包含子表(数据)的集合
      EntityFormat实体 默认{0}
      EntityKeyFormatEntityKey {0}Key
      EnumFormat枚举 {0}List
      GenericListFormatNettiers自带的泛型集合之一 TList<{0}> 表使用
      GenericViewFormat泛型集合之一 VList<{0}> 视图使用
      InterfaceFormat接口 I{0}
      ManyToMayFormat多对多 {0}From{1}
      MethodNames
      BulkInsert批量插入方法的名称
      Deepload主从表查询方法的名称
      DeepSave主从表保存方法的名称
      Delete删除方法的名称
      Find查询方法的名称
      GetGet方法的名称
      GetAll查询全部方法的名称
      GetPaged分页查询方法的名称
      GetTotalItems查询行数方法的名称
      Insert插入方法的名称
      Save保存方法的名称
      Update更新方法的名称
      ProviderFormat{0}Provider
      ServiceClassNameFormat{0}Service
      StrippedTablePrefixed忽略前缀,填写的前缀讲不会被生成到实体中 入tbl;tbl_
      Winforms Library - Advanced
      GenerateWinLibrary生成winform的控件库
      {FKField.name}Source建立有外键的列可以查询到关联表的数据
      {table.name}DataSourceEntityDatasource 实体数据源

转载于:https://www.cnblogs.com/weixing/p/3160344.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值