没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
原创|其它|编辑:郝浩|2009-04-08 09:27:20.000|阅读 477 次
概述:数据访问组件,提供了一组类库和一个代码生成工具,使.net项目中数据访问更简化.
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
项目描述:
数据访问组件,提供了一组类库和一个代码生成工具,使.net项目中数据访问更简化.
功能:
多种数据库支持.
提供DataSet, DataTable 和数据实体查询.
执行SQL脚本及存储过程.
条件表达式.
常用SQL方法, 如MAX, MIN等可能被应用在查询中.
数据实体代码及XML文件生成.
使用:
基本功能:
1. 使用 "EntitiesGenerator" 生成工具生成实体项目。
参见 blog: How to use the "Enties Generator" tool to create an entities project.
2. 添加一个文件名为"connection.config"的数据库连接配置文件,到应用程序的运行目录,文件格式及内容如下:
<?xml version="1.0" encoding="utf-8" ?><connections>
<connection databaseType="SQL">Data Source=.\SQLEXPRESS;AttachDbFilename=
"|DataDirectory|Database1.mdf"; Integrated Security=True;User
Instance=True</connection></connections>
3. 假定我们有个实体类,名叫 "Issue", 可以使用以下代码将它插入数据库
RaisingStudio.Data.Providers.DataContext dc =
new RaisingStudio.Data.Providers.DataContext(); dc.Insert<Issue>(issue);
4. 更新实体.
dc.Update<Issue>(issue);
5. 删除实体, 可以通过给定实体或实体的主键值进行。
dc.Delete<Issue>(issue);
或
dc.Delete<Issue>(issueID);
6. 查询实体, 通过三个不同的方法,可以分别获得 IEnumerable<T>, IList<T> or DataTable 作为返回结果。
IEnumerable<Issue> query = dc.Query<Issue>();
foreach(Issue issue in query) { }
IList<Issue> issueList = dc.QueryForList<Issue>();
在查询中,还可以使用“条件表达式”.
DataTable dataTable = dc.QueryForDataTable<Issue>
(Issue._.IssueID > 1);
7. 可以通过GetData()方法,查询单个实体,使用包含主键值的实体,主键值或条件表达式作为参数。
Issue issue = new Issue(); issue.IssueID = 2; issue = dc.
GetData<Issue>(issue);
Issue issue = dc.GetData<Issue>(2);
Issue issue = dc.GetData<Issue>(Issue._.IssueID == 2);
8. 更新DataTable.
int result = dc.UpdateDataTable<Issue>(dataTable);
高级特性:
1. 常用SQL方法, 包括 GetCount, GetMin, GetMax, GetSum and GetAvg.
int result = dc.GetCount<Issue>();object minValue
= dc.GetMin<Issue>(Issue._.Progress);decimal maxValue
= Convert.ToDecimal(dc.GetMax<Issue>(Issue._.Progress,
Issue._.Title == "test title"));
2. Save 和 Exists.
int result = dc.Save<Issue>(issue);bool saved =
dc.Exists<Issue>(issue);bool ex = dc.Exists<Issue>
(Issue._.Title == "test title");
3. 部分列.
Issue issue = dc.GetData<issue>(2, Issue._.Status);
issue.Status = IssueStatus.Fixed;int result =
dc.Update<Issue>(issue, Issue._.Status);
4. 批量操作.
int result = dc.Delete<issue>(Issue._.Status ==
IssueStatus.Fixed);result = dc.Update<Issue>
(issue, Issue._.Status == IssueStatus.Fixed, Issue._.Status);
5. 排序, 使用 "OrderBy" 方法或 ^ 和 ^ ! 运算符应用在查询中,可以对查询进行排序.
IEnumerable<Issue> query = dc.Query<Issue>
(Issue.All.OrderBy(Issue._.IssueID));query =
dc.Query<Issue>(Issue._.Status == IssueStatus.Fixed ^ Issue._.IssueID);
6. 分页.
IList<Issue> issueList = dc.QueryForList<Issue>(Issue.All, 0, 100);
7. 事务.
try{ this.dc.BeginTransaction(); try
{ int result = this.dc.Insert<Issue>(issue);
this.dc.CommitTransaction(); } catch (Exception ex)
{ System.Diagnostics.Debug.WriteLine(ex);
this.dc.RollbackTransaction(); throw; }}catch (Exception ex)
{System.Diagnostics.Debug.WriteLine(ex); throw;}
8. 多主键.
MutipleKeysTable mt = dc.GetData<MutipleKeysTable>
(new object[] { key1, key2 },
MutipleKeysTable.Except(MutipleKeysTable._.Value2));
9. 使用 common command 查询.
CommonCommand cmd = new CommonCommand();
cmd.CommandText = string.Format("SELECT [IssueID],
[{0}] FROM .[Issue] WHERE [{0}] = @p1", Issue._.Title);
cmd.Parameters.Add("@p1", "test title");Issue issue = dc.GetData<Issue>(cmd);
10. 执行 common command, 支持 ExecuteForDataTable, ExecuteForList, ExecuteQuery, ExecuteReader, ExecuteScalar 和 ExecuteNoQuery 等方法.
RaisingStudio.Data.CommonCommand cmd =
new CommonCommand(string.Format("UPDATE .[{0}]
SET [{1}] = [{1}] + 1 WHERE [{2}] = @p1", Issue._, Issue._.Progress,
Issue._.IssueID));cmd.AddParameter("@p1", System.
Data.DbType.Int32, maxID);int result = this.dc.
ExecuteNoQuery<Issue>(cmd);
11. SQL 脚本日志.
DataContext dc = new DataContext();dc.Log = System.Console.Out;
12. 多种数据库 providers, 添加如下的 xml 项到 "providers.config" 配置文件中, 就可以在 "connections.config" 中使用.
13. 自定义数据类型“转换器”, 以下就是一个 "TypeConverter" 示例代码,及如何配置到 "converters.config" 配置文件中.
14. “实体定义”配置, "*.definition.xml" 文件可以作为资源文件嵌入到程序集在,也可以留在文件系统上,"EntitiesGenerator" 实体生成工具生在项目是采用的嵌入资源的方式, 如果要使用文件的方式,则需要配置一个名叫"definitions.config"的配置文件
15. Common command 管理器. 把 SQL脚本配置在 "commands.config" 中后,可以用如下代码读取使用。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@ke049m.cn
文章转载自:博客园



接DevExpress原厂商通知,将于近日上调旗下产品授权价格,现在下单客户可享受优惠报价!
面对“数字中国”建设和中国制造2025战略实施的机遇期,中车信息公司紧跟时代的步伐,以“集约化、专业化、标准化、精益化、一体化、平台化”为工作目标,大力推进信息服务、工业软件等核心产品及业务的发展。在慧都3D解决方案的实施下,清软英泰建成了多模型来源的综合轻量化显示平台、实现文件不失真的百倍压缩比、针对模型中的大模型文件,在展示平台上进行流畅展示,提升工作效率,优化了使用体验。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@ke049m.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢
半岛外围网上直营