首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

Castle ActiveRecord 入門:從零建立第一個 CRUD 範例

     編輯:關於.NET

什麼是 ActiveRecord?

Castle ActiveRecord 是建構於 NHibernate 之上的輕量 ORM 框架,以 .NET 屬性取代傳統 .hbm.xml 映射檔,讓持久化類別定義更簡潔直觀。

資料表準備

CREATE TABLE Users (
    ID INT IDENTITY(1,1) PRIMARY KEY,
    LoginName VARCHAR(50) NOT NULL,
    Password VARCHAR(20) NOT NULL
);

實體類別

[ActiveRecord("Users")]
public class User : ActiveRecordBase
{
    [PrimaryKey(PrimaryKeyType.Identity, "ID")]
    public int Id { get; set; }

    [Property("LoginName")]
    public string Name { get; set; }

    [Property]
    public string Password { get; set; }

    // 靜態輔助方法
    public static User Find(int id) => (User)FindByPrimaryKey(typeof(User), id);
    public static IList FindAll() => FindAll(typeof(User));
    public static void DeleteAll() => DeleteAll(typeof(User));
}

設定檔

<configSections>
  <section name="activerecord"
           type="Castle.ActiveRecord.Framework.Config.ActiveRecordSectionHandler, Castle.ActiveRecord" />
</configSections>

<activerecord>
  <config>
    <add key="hibernate.connection.driver_class" value="NHibernate.Driver.SqlClientDriver" />
    <add key="hibernate.dialect" value="NHibernate.Dialect.MsSql2000Dialect" />
    <add key="hibernate.connection.provider" value="NHibernate.Connection.DriverConnectionProvider" />
    <add key="hibernate.connection.connection_string"
         value="Data Source=.;Initial Catalog=Castle;User ID=sa;Password=123456" />
  </config>
</activerecord>

初始化與 CRUD 操作

// 初始化(應用程式啟動時一次)
IConfigurationSource src = ConfigurationManager.GetSection("activerecord") as IConfigurationSource;
ActiveRecordStarter.Initialize(src, typeof(User));

// Create
new User { Name = "jailu", Password = "123456789" }.Create();

// Read
var u = User.Find(1);
Console.WriteLine($"{u.Name} / {u.Password}");

// Update
u.Name = "EmmaLee";
u.Update();

// Delete
u.Delete();

掌握此基礎流程,即可快速建立資料存取層,後續再擴展關聯映射、查詢物件等進階功能。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved