`
lovnet
  • 浏览: 6819980 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

CodeSmith生成三层代码之接口层(2)

 
阅读更多
<%--
Name:
Author:
Description:
--%>
<%@ CodeTemplate Language="C#" ResponseEncoding="UTF-8" TargetLanguage="Text" Src="" Debug="False" Description="Template description here." %>
<%@ Property Name="SourceTable" Type="SchemaExplorer.TableSchema" Category="Context" Description="请选择数据表!" %>
<%@ Property Name="NameSpace" Type="System.String" Default="" Optional="False" Category="Description" Description="请输入命名空间" %>
<%@ Assembly Name="SchemaExplorer" %>
<%@ Import Namespace="SchemaExplorer" %>
/*************************************************************/
/* CodeSmith模板生成数据接口 */
/*************************************************************/
using System;
using System.Data;
using System.Collections.Generic;
namespace <%=NameSpace%>.IDAL
{
public interface I<%=SourceTable.Name%>
{
void Add(<%=NameSpace + ".Model." + SourceTable.Name%> model);
void Update(<%=NameSpace + ".Model." + SourceTable.Name%> model);
void Delete(<%=GetPrimaryKeyType(SourceTable) + " " + GetPrimaryKeyName(SourceTable)%>);
List<<%=NameSpace + ".Model." + SourceTable.Name%>> GetList(string strWhere);
DataSet GetData(string strWhere);
<%=NameSpace + ".Model." + SourceTable.Name%> GetModel(<%=GetPrimaryKeyType(SourceTable) + " " + GetPrimaryKeyName(SourceTable)%>);
}
}
<script runat="template">
public string GetPrimaryKeyName(TableSchema table)
{
string primaryKeyName = "";
for(int i=0; i<table.Columns.Count; i++)
{
if(table.Columns[i].IsPrimaryKeyMember)
primaryKeyName = table.Columns[i].Name;
}
return primaryKeyName.ToLower();
}

public string GetPrimaryKeyType(TableSchema table)
{
int temp = 0;
for(int i=0; i<table.Columns.Count; i++)
{
if(table.Columns[i].IsPrimaryKeyMember)
temp = i;
}
string para = "";
if (table.Columns[temp].Name.EndsWith("TypeCode"))
return table.Columns[temp].Name;
switch (table.Columns[temp].DataType)
{
case DbType.AnsiString:
para = "string";
break;
case DbType.AnsiStringFixedLength:
para = "string";
break;
case DbType.Binary:
para = "byte[]";
break;
case DbType.Boolean:
para = "bool";
break;
case DbType.Byte:
para = "int";
break;
case DbType.Currency:
para = "decimal";
break;
case DbType.Date:
para = "DateTime";
break;
case DbType.DateTime:
para = "DateTime";
break;
case DbType.Decimal:
para = "decimal";
break;
case DbType.Double:
para = "double";
break;
case DbType.Guid:
para = "Guid";
break;
case DbType.Int16:
para = "short";
break;
case DbType.Int32:
para = "int";
break;
case DbType.Int64:
para = "long";
break;
case DbType.Object:
para = "object";
break;
case DbType.SByte:
para = "sbyte";
break;
case DbType.Single:
para = "float";
break;
case DbType.String:
para = "string";
break;
case DbType.StringFixedLength:
para = "string";
break;
case DbType.Time:
para = "TimeSpan";
break;
case DbType.UInt16:
para = "ushort";
break;
case DbType.UInt32:
para = "uint";
break;
case DbType.UInt64:
para = "ulong";
break;
case DbType.VarNumeric:
para = "decimal";
break;
default:
para = "__UNKNOWN__" + table.Columns[temp].NativeType;
break;
}
return para;
}
</script>


分享到:
评论

相关推荐

    CodeSmith生成三层访问代码

    在本案例中,我们关注的是如何使用CodeSmith来生成三层架构的访问代码,这通常涉及到数据访问层(DAL)、业务逻辑层(BLL)和表现层(UI)。 三层架构是一种常见的软件设计模式,它将应用逻辑分为三个独立的层次,...

    codesmith 生成三层数据访问层

    根据提供的文件信息,我们可以深入探讨如何使用 Codesmith 来生成三层架构中的数据访问层(DAL)。三层架构是一种常见的软件架构模式,它将应用程序分为三个主要的逻辑层:表示层、业务逻辑层和数据访问层。这种分层...

    CodeSmith 生成三层模板

    通过使用CodeSmith生成三层模板和SqlHelper,开发者可以快速搭建起一个基础的、具备数据访问能力的.NET应用程序框架,极大地减少了编码工作量,使得开发者能更专注于业务逻辑的实现和系统的优化。这不仅提高了开发...

    codeSmith自动生成三层中的代码

    在使用CodeSmith生成三层架构代码时,你需要创建相应的模板文件。模板语言是CodeSmith的强项,它允许使用C#或其他.NET语言的语法来定义模板。例如,你可以创建一个模板来生成基于Entity Framework的DAL,另一个模板...

    ASP.NET 中 CodeSmith可以自动生成三层代码

    通过以上步骤,开发者可以利用CodeSmith在ASP.NET项目中快速生成符合三层架构的代码,从而节省大量手动编码的时间,提高项目的开发速度。同时,由于模板的灵活性,即使项目需求变更,只需更新模板即可自动生成适应新...

    CodeSmith三层代码生成模板

    在CodeSmith生成的三层代码中,这一层负责与用户交互,接收用户的输入并显示结果。它不包含具体的业务逻辑,而是调用业务逻辑层来处理这些请求。文件名`DBMad.BLL.cst`可能包含了与业务逻辑层交互的接口或代理类。 ...

    普通 codesmith三层代码生成模板

    "普通 codesmith三层代码生成模板" 是一个专为C#开发者设计的工具,用于自动化生成代码,特别是在开发三层架构的应用程序时。三层架构通常包括表现层(Presentation Layer)、业务逻辑层(Business Logic Layer)和...

    CodeSmith软件以及三层结构代码生成模板及DBHelper类

    使用CodeSmith生成DBHelper类,开发者需要定义一个模板,该模板包含创建数据库连接、执行SQL语句和处理结果集的逻辑。模板中可以使用变量来动态地设置数据库连接字符串和其他参数,确保代码的灵活性。生成的DBHelper...

    CodeSmith .net 三层自动生成模板

    总结来说,CodeSmith .NET 2.0三层自动生成模板是一个强大的开发辅助工具,它可以帮助开发者快速构建符合三层架构的项目,提高开发效率,并保持代码的结构清晰和易于维护。通过熟练掌握和利用CodeSmith,开发者可以...

    asp.net codeSmith三层代码生成模板

    在CodeSmith生成的三层代码中,BLL类会调用DAL来访问数据库,执行必要的业务操作,如验证、计算、事务处理等。BLL的设计应遵循单一职责原则,每个类或方法只处理特定的业务逻辑。 3. 数据访问层(DAL): DAL负责...

    C#版 -- 实用性CodeSmith模板(自动生成三层架构底层代码)

    "C#版 -- 实用性CodeSmith模板(自动生成三层架构底层代码)"这个项目专注于为C#开发者提供一套定制的CodeSmith模板,用于快速构建三层架构的应用程序。模板的设计理念是减轻开发者手动编写基础架构代码的负担,让...

    .net三层模板 可以减轻代码量,适用于中、小型项目的代码生成 CodeSmith

    使用CodeSmith生成这些模板代码,开发者可以从繁琐的基础代码编写工作中解脱出来,更专注于业务逻辑的设计和实现。此外,由于CodeSmith支持自定义模板,所以可以根据项目需求定制化生成代码,提高开发效率和代码质量...

    CodeSmith三层模板

    本资源“CodeSmith三层模板”专为构建典型的三层架构(表现层BLL、数据访问层DAL、实体模型Models)设计,旨在帮助开发者快速生成规范化的代码。 一、CodeSmith简介 CodeSmith是一款基于模板的代码生成工具,通过...

    CodeSmith简单三层模板

    这个“CodeSmith简单三层模板”很可能包含了一些预定义的模板文件,用于生成常见的三层架构代码,例如: - UI层的接口和实现类,可能包含控制器或视图模型。 - BLL层的业务实体类和业务逻辑处理类。 - DAL层的数据...

    codesmith 3层代码生成模板

    三、Codesmith 3层代码生成模板的构成 Codesmith的3层代码生成模板包括了对应3层架构中的各个部分: 1. 实体类模板(Entities):生成表示数据库表的实体类,通常包括属性,对应数据库表的字段。 2. 数据访问接口...

    SqlServer CodeSmith三层架构模版(升级版)

    在本次升级中,Sql Server CodeSmith模板添加了非空判断功能,这意味着在生成的数据访问层和业务逻辑层代码中,会自动检查输入参数是否为null。这是一个重要的优化,因为在实际应用中,如果没有进行非空检查,空值...

    codesmith3.2三层模板

    总的来说,codesmith3.2三层模板通过自动化代码生成,降低了开发复杂度,提高了代码一致性,使得团队协作更为顺畅。同时,它遵循了良好的软件设计原则,让每个层次的代码职责明确,降低了系统维护难度。对于大型项目...

    CodeSmith 三层结构批量生成模板

    5. **版本控制**:与版本控制系统(如Git)结合使用,CodeSmith生成的代码可以被有效地跟踪和管理,确保团队协作的顺畅。 6. **性能优化**:通过自动化生成代码,可以减少不必要的重复工作,使得开发团队有更多时间...

    CodeSmith可以自动生成三层代码的模板

    总的来说,CodeSmith通过自动生成三层架构的代码,降低了开发复杂度,提高了开发效率。无论是初创项目还是已有系统的扩展,都能从中受益。利用CodeSmith,开发者可以将精力集中在核心业务逻辑上,而把繁琐的代码生成...

Global site tag (gtag.js) - Google Analytics