NClay的数据持久化处理入门编
n 组件配置
NClay的数据持久化配置如下:
<configSections>
<section name="NClay" type="NClay.FrameWorkConfigHandler, NClay, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
</configSections>
<NClay>
<!-- 数据访问配置节-->
<dal>
<DriverType value="NClay.Data.OledbAccess, NClay.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null"/>
<ConnectionString value=""/>
<MappingAssemblys>
<Assembly value="Blog.Entities"/>
</MappingAssemblys>
</dal>
</NClay>
Dal节是组件的数据持久化配置部分,主要包括以下三大部分:
DriverType:
描述默认操作库数据的类型,这里配置了Access;组件还提供了Oracle和MSSQL。使用者完全可以根据IDriver来实现自己的数据库操作类型。
ConnectionString:
描述默认数据库的连接信息
MappingAssemblys:
描述映射实体类所在的程序集,允许为空。
n 实体类生成
CodeFactory是一个基本模板的代码生成工具,他提供NClay数据持久层的实体生成模板。
n 简单的持久化操作
下面主要介绍如果通过DaoContext进行简单的数据操作。
当然配置时不能确定配置信息可以调用DaoContext进行各方面的信息设置:
DaoContext.ConfigConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=FPNWIND.MDB";//初始化Access数据库连接信息
DaoContext.AddAssembly(typeof(Program).Assembly);//加载相关程序集中所有实体描述类型
//添加相关实体索引序列
DaoContext.IDSequence.Add(typeof(类别),new NClay.Data.Mappings.MSSQL_IDENTITY_SEQUENCE());
DaoContext.IDSequence.Add(typeof(产品), new NClay.Data.Mappings.MSSQL_IDENTITY_SEQUENCE());
DaoContext.IDSequence.Add(typeof(供应商), new NClay.Data.Mappings.MSSQL_IDENTITY_SEQUENCE());
DaoContext.IDSequence.Add(typeof(运货商), new NClay.Data.Mappings.MSSQL_IDENTITY_SEQUENCE());
配置完成后就可以进行持久化数据操作
获取对象
产品 product = DaoContext.Load<产品>(1);
Console.WriteLine(product.产品名称);
Console.WriteLine(product.库存量);
Console.WriteLine(product.单价);
Console.WriteLine(product.单位数量);
添加对象
类别 category = new 类别();
category.类别名称= "测试类别";
category.说明= "NClay测试用";
DaoContext.Add(category);
Console.WriteLine(category.类别ID);
修改对象
int categoryid = category.类别ID;
category.说明= "修改测试";
DaoContext.Edit(category);
category = DaoContext.Load<类别>(categoryid);
Console.WriteLine(category.说明);
删除对象
(DB.类别.类别ID==categoryid).Delete<类别>();
category = DaoContext.Load<类别>(categoryid);
Console.WriteLine(category == null);
查询对象
IList<产品> items;
items = DaoContext.List<产品>(null);
foreach (产品 item in items)
{
Console.WriteLine("");
Console.Write(item.产品名称+ "\t");
Console.Write(item.库存量+ "\t");
Console.Write(item.单价+ "\t");
}
items = DaoContext.List<产品>(null, DB.产品.单价.DESC);
foreach (产品 item in items)
{
Console.WriteLine("");
Console.Write(item.产品名称+ "\t");
Console.Write(item.库存量+ "\t");
Console.Write(item.单价+ "\t");
}
items = DaoContext.List<产品>(null,new Region(0,10));
foreach (产品 item in items)
{
Console.WriteLine("");
Console.Write(item.产品名称+ "\t");
Console.Write(item.库存量+ "\t");
Console.Write(item.单价+ "\t");
}
items = (DB.产品.类别ID ==1 & DB.产品.单价>10).List<产品>();
foreach (产品 item in items)
{
Console.WriteLine("");
Console.Write(item.产品名称+ "\t");
Console.Write(item.库存量+ "\t");
Console.Write(item.单价+ "\t");
}
在下一章节里会介绍组件的条件表达式,该表达式最特别的地方就是可以进行数据查询、修改、删除和聚合统计等功能。