程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> MySoft.Data從入門到精通系列(二)【生成實體續(插件的使用)】

MySoft.Data從入門到精通系列(二)【生成實體續(插件的使用)】

編輯:關於.NET

前一章講解了如何使用實體生成直接生成實體,本來此章打算講解如何使用已經生成的實體來進行開發的,介於園子裡很多朋友都不知道如何使用實體的插件,這章就著重講一下實體生成插件的使用!

前面已經說明了插件如何安裝,並針對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到此項目中

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved