C#,Castle,NHibernate,Oracle,最简单的实现
来源:互联网 发布:日本常用聊天软件 编辑:程序博客网 时间:2024/06/06 16:46
第一步(这一步骤也可以省略的):创建表
-- Create table
create table USERS
(
logonid NVARCHAR2(255) not null,
logonname NVARCHAR2(255),
password NVARCHAR2(255),
emailaddress NVARCHAR2(255),
lastlogon NUMBER(10)
)
tablespace USER_DATA
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 64
minextents 1
maxextents unlimited
);
-- Create/Recreate primary, unique and foreign key constraints
alter table USERS
add primary key (LOGONID)
using index
tablespace USER_DATA
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
);
2.编辑,类文件
添加引用
using Castle.ActiveRecord;
using Castle.ActiveRecord.Queries;
castle的引用在www.castleproject.org上有很多,下载一个包里,把里面的dll,引用进来就可以了
由于是Oracle,所以少不了对Oracle的dll
[ActiveRecord("USERS")]
public class User : ActiveRecordBase
{
private string _id;
private string _name;
private string _password;
private string _emailAddress;
private int _lastLogon;
[PrimaryKey(PrimaryKeyType.UuidHex, Params = "format=D,seperator=-"
, Column = "LOGONID")]
public string Id
{
get { return _id; }
set { _id = value; }
}
[Property("LOGONNAME")]
public string Name
{
get { return _name; }
set { _name = value; }
}
[Property("PASSWORD")]
public string Password
{
get { return _password; }
set { _password = value; }
}
[Property("EMAILADDRESS", Length = 3)]
public string Address
{
get { return _emailAddress; }
set { _emailAddress = value; }
}
[Property("LASTLOGON")]
public int LastLogon
{
get { return _lastLogon; }
set { _lastLogon = value; }
}
public static void DeleteAll()
{
ActiveRecordBase.DeleteAll(typeof(User));
}
public static User[] FindAll()
{
return ((User[])(ActiveRecordBase.FindAll(typeof(User))));
}
public static void Save(User user)
{
ActiveRecordBase.Save(user);
}
注意粗体显示的Attribute,这样可以生成GUID,这里是为了解决DbType.Guid的不支持而进行的改变
3.然后配置app.Config
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="activerecord" type="Castle.ActiveRecord.Framework.Config.ActiveRecordSectionHandler, Castle.ActiveRecord"/>
</configSections>
<activerecord>
<config>
<add key="hibernate.connection.driver_class" value="NHibernate.Driver.OracleClientDriver"/>
<add key="hibernate.dialect" value="NHibernate.Dialect.OracleDialect"/>
<add key="hibernate.connection.provider" value="NHibernate.Connection.DriverConnectionProvider"/>
<add key="hibernate.connection.connection_string" value="Data Source=orcl;User ID=trade;Password=trade;"/>
</config>
</activerecord>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>
4.添加完了之后 在Program.cs里面进行 Initialize
IConfigurationSource source = System.Configuration.ConfigurationManager.GetSection("activerecord") as IConfigurationSource;
ActiveRecordStarter.Initialize(source,typeof(User));
放在Main函数中即可。
5.调用
比如下面的调用:
private void button2_Click(object sender, EventArgs e)
{
User usexx = new User();
usexx.Name = "1";
usexx.Address = "3333wertwertwertwert";
usexx.LastLogon =1;
usexx.Save();
}
这样就顺利在Oracle,的USERS的表中就添加了一条数据。
这就是一个最简单的Castle应用了。
注意:
一定要保证你的引用是同一个版本的
using Castle.ActiveRecord;
using Castle.ActiveRecord.Queries;
还有
当出现Cannot Save的时候大部分的问题是你的数据的格式不对。
现在发现使用 :
Castle.ActiveRecord.Generator.exe自动生成类对象,是有异常的,所以还是敲代码吧。如果哪位知道什么原因,请指点呀。
多分享,多受益。我为人人,人人为我。赠人玫瑰,手留余香。
点击链接刷刷流量吧:http://shop70757995.taobao.com/
- C#,Castle,NHibernate,Oracle,最简单的实现
- 利用一个Demo说明Castle+NHibernate的实现
- Castle+Nhibernate初试
- NHibernate 3.2或以上的版本就没有 NHibernate.ByteCode.Castle.dll,NHibernate.ByteCode.LinFu.dll, NHibernate.Byt
- 基于.Net(Castle+nhibernate)的松散式工作流引擎(一)
- 最简单的方法实现ORACLE的定时备份
- castle Nhibernate调用存储过程
- 最普通的使用NHibernate
- C语言 压栈的最简单实现
- c语言实现最简单的写文件操作
- Linux C 实现最简单的ICMP_ECHO请求报文发送
- 最简单的oracle安装
- oracle最简单的分页
- Castle AOP 系列(三):实现一个简单的调用指令路由(有源码)未整理
- WPF使用Castle.ActiveRecord的简单示例
- c++:最简单的动态分配
- 一个简单的NHibernate例子
- C#.Net Castle ActiveRecord学习实践(4):实现One-Many关系的映射
- UIPopoverController的使用
- vc发出提示音
- 12个git实战建议和技巧
- 数据库中视图的作用
- git config第三篇——git的常用配置
- C#,Castle,NHibernate,Oracle,最简单的实现
- 【转】CSS架构
- XCode 4 target deployment target vs. project deployment target?
- C语言的文件操作----fputc
- ANSI C and Microsoft C++中常用的预定义宏(转)
- js图片自由运动
- Java基础代码片段
- 市场营销学7——目标市场营销
- SQL Server Default 约束使用