• 记录Castle ActiveRecord访问Sqlite的配置


    1、ActiveRecord配置文件ARConfig.xml,并将配置文件的“生成操作”改成“嵌入的资源”

    <?xml version="1.0" encoding="utf-8" ?>
    <activerecord isWeb="true">
      <config>
        <add key="connection.driver_class" value="NHibernate.Driver.SQLite20Driver" />
        <add key="dialect" value="NHibernate.Dialect.SQLiteDialect" />
        <add key="connection.provider" value="NHibernate.Connection.DriverConnectionProvider" />
        <add key="connection.connection_string" value="data source=|DataDirectory|message.db;Version=3;" />
        <add key="proxyfactory.factory_class" value="NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle"/>
        <add key="show_sql" value="true"/>
      </config>
    </activerecord>

    2、使用到的DLL文件

    3、测试实体类UserInfo

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using Castle.ActiveRecord;
    using NHibernate;

    namespace CY.Domain
    {
        [ActiveRecord("T_User")]
        public class UserInfo : ActiveRecordBase
        {
            #region 属性

            [PrimaryKey(PrimaryKeyType.Identity, "ID")]
            public int ID { getset; }

            [Property("UserName")]
            public string Name { getset; }

            [Property("Password")]
            public string Password { getset; }

            [Property("RegTime")]
            public DateTime RegTime { getset; }

            #endregion

            #region 方法

            public static void Insert(UserInfo user)
            {
                Save(user);
            }

            public static IList<UserInfo> Select()
            {
                return (IList<UserInfo>)FindAll(typeof(UserInfo));
            }

            public static UserInfo Query(int id)
            {
                object model = FindByPrimaryKey(typeof(UserInfo), id);

                return model != null ? model as UserInfo : null;
            }

            public static void Del(int id)
            {
                UserInfo model = Query(id);
                if (model != null)
                {
                    Delete(model);
                }
            }
           
            #endregion
        }
    }
    View Code

    4、初始化实体类对象(Global.asax)

    using Castle.ActiveRecord;

    using Castle.ActiveRecord.Framework.Config;

            protected void Application_Start()
            {
                AreaRegistration.RegisterAllAreas();

                RegisterRoutes(RouteTable.Routes);

                XmlConfigurationSource source = new XmlConfigurationSource(Server.MapPath("ARConfig.xml"));
                ActiveRecordStarter.Initialize(source, typeof(UserInfo));
            }

    5、使用

                for (int i = 0; i < 10; i++)
                {
                    UserInfo.Insert(new UserInfo()
                    {
                        Name = "user" + i.ToString(),
                        Password = "123456",
                        RegTime = DateTime.Now
                    });
                }

                IList<UserInfo> models = UserInfo.Select();
                ViewData["users"] = models;
  • 相关阅读:
    无需认证的mail,适用于ZABBIX等运维系统
    Linux交换分区使用过多的处理办法
    zookeeper的单实例和伪集群部署
    Zookeeper分布式集群原理与功能
    Nginx禁止IP直接访问网站
    镜像站地址汇总
    Nginx反向代理后端多节点下故障节点的排除思路
    Redis主从复制与高可用方案
    http_proxy_module模块常用参数
    Nginx实现负载均衡的几种方式
  • 原文地址:https://www.cnblogs.com/wanfeng/p/3160006.html
Copyright © 2020-2023  润新知