前一章講解了如何使用實體生成直接生成實體,本來此章打算講解如何使用已經生成的實體來進行開發的,介於園子裡很多朋友都不知道如何使用實體的插件,這章就著重講一下實體生成插件的使用!
前面已經說明了插件如何安裝,並針對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>
五、將接口通過插件來生成實體
配置好以上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來添加注釋,否則無法附加到生成的實體中。
本組件還支持枚舉的方式進行增刪改查,這樣對用戶的使用上會更加簡便!
如果數據庫中對字段進行增刪改,只需要將此接口中的屬性更改即可
還可以通過以下方式處理:
使用Mapping來修改字段的映射 /// <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到此項目中