前一章讲解了如何使用实体生成直接生成实体,本来此章打算讲解如何使用已经生成的实体来进行开发的,介于园子里很多朋友都不知道如何使用实体的插件,这章就着重讲一下实体生成插件的使用!
前面已经说明了插件如何安装,并针对vs.net2005与vs.net2008修改相应的配置,下面就来说说怎样在vs.net下使用插件,本人所用的开发工具为vs.net 2008。
一、打开vs.net查看插件是否启用
如下图所示,如果插件安装成功,在此处将可以看到以下界面
如果插件未启用,请勾上启用,然后确定!
二、新建一个C#或vb.net的类库项目
此项目只用于生成实体所用,所以我命名MySoftExample.EntityDesign
三、用生成工具生成接口文件
这里不需要勾上【从数据库直接生成实体】,选择右边的表后点击生成实体接口即可。
生成单个文件就在项目中建一个EntitiesDesign.cs文件,然后将代码复制过去
为每个接口生成一个独立的文件,在下方选择刚才项目所在的文件夹,点击生成多个文件即可
具体参照前一单(生成实体):
到此为止,接口文件就生成完了,如果字段属性有备注说明,这里会自动生成注释的。
四、配置实体生成的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; } }
本组件还支持枚举的方式进行增删改查,这样对用户的使用上会更加简便!
如果数据库中对字段进行增删改,只需要将此接口中的属性更改即可
还可以通过以下方式处理:
/// <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组件问题反馈与疑难解答