posts - 19,  comments - 128,  trackbacks - 0

    前一章讲解了如何使用实体生成直接生成实体,本来此章打算讲解如何使用已经生成的实体来进行开发的,介于园子里很多朋友都不知道如何使用实体的插件,这章就着重讲一下实体生成插件的使用!

    前面已经说明了插件如何安装,并针对vs.net2005与vs.net2008修改相应的配置,下面就来说说怎样在vs.net下使用插件,本人所用的开发工具为vs.net 2008。

 

一、打开vs.net查看插件是否启用

如下图所示,如果插件安装成功,在此处将可以看到以下界面

如果插件未启用,请勾上启用,然后确定!

tmp49D4 tmpFABC

二、新建一个C#或vb.net的类库项目

     此项目只用于生成实体所用,所以我命名MySoftExample.EntityDesign

    tmp4056

三、用生成工具生成接口文件

这里不需要勾上【从数据库直接生成实体】,选择右边的表后点击生成实体接口即可。

生成单个文件就在项目中建一个EntitiesDesign.cs文件,然后将代码复制过去

为每个接口生成一个独立的文件,在下方选择刚才项目所在的文件夹,点击生成多个文件即可

具体参照前一单(生成实体):

tmp7194

到此为止,接口文件就生成完了,如果字段属性有备注说明,这里会自动生成注释的。

四、配置实体生成的xml

    首先将lib目录下的EntityDesignConfig.xml文件复制到MySoftExample.Design项目里

<?xml version="1.0" encoding="utf-8" ?>
<EntityDesignConfiguration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <CompileMode>Debug</CompileMode>
  <InputDllName>EntityDesign.dll</InputDllName>
  <OutputLanguage>C#</OutputLanguage>
  <OutputNamespace>EntityModel</OutputNamespace>
  <EntityCodePath>..\EntityModel\Entities.cs</EntityCodePath>
</EntityDesignConfiguration>


打开此文件将看到上面的配置信息:

1、 CompileMode:表示编译的模式,默认为debug

2、 InputDllName:表示输入实体接口类的dll文件名,即该项目生成的dll的文件名

3、 OutputLanguage:表示输出实体类的语言,默认为C#,也可以为vb.net

4、 OutputNamespace:表示输出实体类的命名空间

5、 EntityCodePath:表示输出实体类文件的路径,即把由实体接口类生成的实体类生成完存放的路径。

      支持相对路径,..\表示前一级目录

<EntityCodePath>配置是支持单个文件或文件夹的,如果配置节的路径为文件名,则生成单个文件,如果是目录名则每个接口生成一个实体文件,我这里配置为每个实体生成独立的文件。

我将配置好的xml发出来做为示例

<?xml version="1.0" encoding="utf-8" ?>
<EntityDesignConfiguration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <CompileMode>Debug</CompileMode>
  <InputDllName>MySoftExample.EntityDesign.dll</InputDllName>
  <OutputLanguage>C#</OutputLanguage>
  <OutputNamespace>MySoftExample.DataEntity</OutputNamespace>
  <EntityCodePath>..\MySoftExample.DataEntity\</EntityCodePath>
</EntityDesignConfiguration>
 

具体怎样配置请参考MySoft.Data的使用说明

 

五、将接口通过插件来生成实体

     配置好以上xml后,点击生成接口项目,此时只要配置没有问题,则会自动生成所需的文件。

其实插件会自动调用MySoft.Tools.EntityDesign.exe来生成。

 

注意:如果设置的是生成文件夹,则需要将生成的文件包括在项目中

        如果设置的生成文件,则之前要先创建好这个文件在实体项目中!

 

通过接口来生成实体还有更加强大的功能,如下所示:

    /// <summary>
    /// 用户类型
    /// </summary>
    public enum UserType
    {
        /// <summary>
        /// 普通的
        /// </summary>
        General,
        /// <summary>
        /// 超级用户
        /// </summary>
        Admin
    }

    /// <summary>
    /// 用户信息
    /// </summary>
    [Description("用户信息")]
    public interface User : IEntity
    {
        [PrimaryKey]
        [Description("用户ID")]
        int UserID { get; }

        [Description("用户名")]
        string UserName { get; set; }

        [Description("用户类型")]
        UserType UserType { get; set; }
    }
通过接口的方式可以给属性或类加上注释说明,必须通过Description来添加注释,否则无法附加到生成的实体中。

本组件还支持枚举的方式进行增删改查,这样对用户的使用上会更加简便!

如果数据库中对字段进行增删改,只需要将此接口中的属性更改即可

还可以通过以下方式处理:

    /// <summary>
    /// 用户信息
    /// </summary>
    [Description("用户信息")]
    [Mapping("User")]
    public interface UserEntity : IEntity
    {
        [PrimaryKey]
        [Description("用户ID")]
        [Mapping("UserID")]
        int ID { get; }

        [Description("用户名")]
        [Mapping("UserName")]
        string Name { get; set; }

        [Description("用户类型")]
        [Mapping("UserType")]
        UserType Type { get; set; }
    }

注:此枚举需要放在独立的项目中,接口项目与实体项目都需要引用此枚举!

     对接口的修改需要重新生成实体。

 

插件的使用到此为止,下一章将讲解如何配置DbSession

如果要使项目编译成功,需要添加 MySoft.Data.dll到此项目中

有什么问题可以到此处:MySoft组件问题反馈与疑难解答

posted on 2010-03-08 13:40  MySoft  阅读(3532)  评论(5编辑  收藏