设为首页 收藏本站
查看: 943|回复: 0

[经验分享] C#,Castle,NHibernate,Oracle,最简单的实现

[复制链接]
YunVN网友  发表于 2016-8-15 07:28:52 |阅读模式
  第一步(这一步骤也可以省略的):创建表
  -- 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,引用进来就可以了
DSC0000.jpg
  由于是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的表中就添加了一条数据。
DSC0001.jpg
  这就是一个最简单的Castle应用了。
  注意:
  一定要保证你的引用是同一个版本的
  using Castle.ActiveRecord;
using Castle.ActiveRecord.Queries;

  还有
  当出现Cannot Save的时候大部分的问题是你的数据的格式不对。
  现在发现使用 :
  Castle.ActiveRecord.Generator.exe自动生成类对象,是有异常的,所以还是敲代码吧。如果哪位知道什么原因,请指点呀。
  多分享,多受益。我为人人,人人为我。赠人玫瑰,手留余香。
  点击链接刷刷流量吧:http://shop70757995.taobao.com/

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-257964-1-1.html 上篇帖子: Oracle SQL性能优化深入浅出 3 下篇帖子: Oracle高级应用之物化视图(materialized view)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表