程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> 自己動手寫ASP.NET ORM框架(三):關系映射配置—Table屬性

自己動手寫ASP.NET ORM框架(三):關系映射配置—Table屬性

編輯:關於ASP.NET

在上一篇隨筆中已經完成了ADO.NET操作數據庫的封裝,並已經支持多數據庫,只需要在 配置文件中指定數據庫類型即可,本節主要完成對象與數據庫表的關系映射配置。

下面看表名的映射配置代碼塊1-1:

[Table(Name="Student")]
public class StudentEntity
{
   //...........省略
}

在類上面用[Table(name = ”Student")]屬性來配置,表示該實體類StudentEntity與數 據庫中的Student表進行關系映射。

Table屬性需要自己編寫,代碼塊1-2:

using System;
using System.Collections.Generic;
using System.Text;

namespace System.Orm.CustomAttributes
{
   [AttributeUsage(AttributeTargets.Class, AllowMultiple = false,  Inherited = false)]
   public class TableAttribute : Attribute
   {
     private string _Name = string.Empty;

     public TableAttribute() {}

     public string Name
     {
       get { return _Name; }
       set { _Name = value; }
     }
   }
}

上面代碼中我們編寫TableAttribute自定義屬性類,然後繼承Attribute自定義屬性基類 ,在具體使用的時候我們只需在需要配置屬性的類上加[Table(Name="你要指定的表名")]。 這裡的TableAttribute省略了後面的Attribute,用Table即可.NET會根據Table名稱 +Atrribute去查找TableAttribute類。

[AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = false)]

這段屬性配置表示TableAttribute屬性類的用法配置,

AttributeTargets.Class表示只可用於類,所以使用時把該屬性加載類的上面,如代碼塊 1-1

AllowMultiple 表示能否為一個元素指定多個屬性示例,在這裡比如在StudentEntity上 是否可以配置多次Table屬性,我們設置false即只可配置一次。

Inherited 表示Table屬性可否被繼承,這裡設置false即不可被繼承。

在TableAttribute屬性類中定義了Name公有屬性,用於指定Table屬性所配置的實體所對 應的數據庫中表名。

這裡Table屬性到這裡已經完成,下一篇中將繼續介紹自定義屬性:

IdAttribute(用於指定實體類中哪一個屬性字段對應數據庫表中的主鍵ID)

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