Beginner:How to use Entity Framework? SOS!

Senior men:Try using the SOD Framework!

菜鸟:怎么使用EF框架啊?遇到麻烦了,救命!

老鸟:试试SOD开发框架!

Still using EF and get stuck? Why not release yourself and try SOD!

It is easy, and simple.

一直使用EF并且老是遇到麻烦?何不解放自己并且试试SOD框架呢!

它是简单的,并且容易使用的,轻量级的框架。

SOD not only a ORM framework,include SQL-MAP,DataControls,detai ,but it is a light weight framework . see [url:this page. |http://www.pwmis.com/sqlmap]

SOD 不仅仅是一个ORM框架,还包括 SQL-MAP,DataControls,但它却是一个非常轻量级的框架。了解更多,看[url:这里。 |http://www.pwmis.com/sqlmap]

Learning more,see [url:this page. |https://pwmis.codeplex.com/wikipage?title=Framework%20details&version=2]

要了解更多,请看[url:这篇文章 |https://pwmis.codeplex.com/wikipage?title=Framework%20details&version=2]

下面一个简单的SOD框架ORM使用的实例:

在开始工作之前,先建立一个控制台项目,然后在程序包管理控制台,添加SOD框架的Nuget 包:

{{

Install-Package PDF.NET

}}

这样即可获取到最新的SOD框架包并且添加引用,然后,就可以开始下面的工作了。

已经建立好的当前Demo程序下载,[url:看这里 |http://pwmis.codeplex.com/downloads/get/1522232]

1,首先建立一个实体类:

{code:c#}

public class User : EntityBase

{

public User()

{

TableName = "Tb_User";

IdentityName = "UserID";

PrimaryKeys.Add("UserID");

}

public int ID

{

get { return getProperty("UserID"); }

set { setProperty("UserID", value); }

}

public string Name

{

get { return getProperty("Name"); }

set { setProperty("Name", value, 50); }

}

public string Pwd

{

get { return getProperty("Pwd"); }

set { setProperty("Pwd", value, 50); }

}

}

{code:c#}

2,然后建立一个 DbContext:

{code:c#}

class LocalDbContext:DbContext

{

public LocalDbContext()

: base("local")

{

//local 是连接字符串名字

}

protected override bool CheckAllTableExists()

{

//创建用户表

CheckTableExists();

return true;

}

}

{code:c#}

3,修改下App.config 文件的连接配置:

{code:xml}

{code:xml}

providerName 是SOD框架提供的驱动程序,可选的内容有:

Access

SqlServer

Oracle

SqlCe

OleDb

Odbc

如果是其它的扩展程序集,那么providerName应该写成下面的形式:

{{

providerName="PWMIS.DataProvider.Data.OracleDataAccess.Oracle,PWMIS.OracleClient"

}}

其中,“,”号前是驱动程序类型的全名称, “,”号后是驱动程序所在的程序集名称,要求该程序集必须放到 跟PWMIS.Core.dll 同一个目录下,且是同一个兼容版本。

有关数据库连接配置的详细内容,请参考:[2.2.3 扩展数据访问类配置]

4,然后,像下面这样使用,即可自动创建数据库和表,并且添加一条初始数据:

{code:c#}

//创建数据库和表

LocalDbContext context=new LocalDbContext();

//重新指定主键,删除旧的测试数据

User oldUser = new User();

oldUser.PrimaryKeys.Clear();

oldUser.PrimaryKeys.Add("Name");

oldUser["Name"] = "zhang san"; //索引器使用

int count= context.Remove(oldUser);

User zhang_san = new User() { Name = "zhang san", Pwd = "123" };

count = context.Add(zhang_san);//采用 DbContext 方式插入数据

{code:c#}

当然插入数据的方式很多,具体请看本文提供的源码下载。

5,最后,像下面这样使用查询即可:

{code:c#}

User user = new User() { Name = "zhang san" };

OQL q = OQL.From(user)

.Select()

.Where(user.Name)

.END;

PrintOQL(q);

List users = EntityQuery.QueryList(q);

{code:c#}

这种方式适合简单的相等条件查询,如果需要复杂的条件,可以修改成下面这个样子:

{code:c#}

//示例:采用操作符重载写比较条件

User user = new User();

OQL q = OQL.From(user)

.Select()

.Where(cmp => cmp.Property(user.Name) == "zhang san")

.END;

PrintOQL(q);

//使用扩展方法 using PWMIS.Core.Extensions;

List users = q.ToList();

{code:c#}

示例代码中的 可以修改成 >,

如果需要更多条件,可以使用 &表示SQL的AND,| 表示 SQL的OR 逻辑关系,比如:

{code:c#}

//示例:采用操作符重载写比较条件

User user = new User();

OQL q = OQL.From(user)

.Select()

.Where(cmp => cmp.Property(user.Name) == "zhang san"

& cmp.Comparer(user.Pwd ,"=","123") )

.END;

PrintOQL(q);

//使用扩展方法 using PWMIS.Core.Extensions;

List users = q.ToList();

{code:c#}

实际上,框架提供了至少6种查询方式,详细内容,请看Demo程序下载,[url:看这里 |http://pwmis.codeplex.com/downloads/get/1522232]

附注:

{code:c#}

private static void PrintOQL(OQL q)

{

Console.WriteLine("OQL to SQL:\r\n{0}", q.ToString());

Console.WriteLine("SQL Parameters:\r\n{0}", q.PrintParameterInfo());

}

{code:c#}

该方法可以打印OQL的SQL和参数信息,为你调试代码带来方便。

这样,一个简单的ORM使用实例就做好了。上面这段ORM例子,不仅仅适用于Oracle,使用在其它数据库都是可以得,只需要修改 连接字符串配置的 providerName和 connectionString 即可。

详细可以参考 [url: Oracle 免费的数据库--Database 快捷版 11g 安装使用与"SOD框架"对Oracle的CodeFirst支持 |http://www.cnblogs.com/bluedoctor/p/4359878.html]

pdf.net sod oracle,SOD: 原PDF.NET框架将成为一个全功能的企业开发框架,而 SOD框架将是PDF.NET开发框架下面的 “数据开发框架...相关推荐

  1. 机器人点焊枪接线_全功能自动焊枪清枪站安装操作说明书.PDF

    全功能自动焊枪清枪站安装操作说明书 全功能版自动焊枪清枪站 安装操作说明书 上海倍吉电子科技 上海市嘉定区马陆工业园丰饶路 505 号 电话:02150116525 传真:021 网址: 1 / 23 ...

  2. PDF.NET数据开发框架实体类操作实例(for PostgreSQL,并且解决自增问题)

    PDF.NET数据开发框架实体类操作实例(MySQL) 的姊妹篇,两者使用了同一个测试程序,不同的只是使用的类库和数据库不同,下面说说具体的使用过程. 1,首先在App.config文件中配置数据库连 ...

  3. PDF.NET 数据开发框架

    欢迎使用 PDF.NET 数据开发框架 (Ver 4.0) 关于框架的名字由来 在我设计www.pwmis.cn 站点(原域名已经过期,现在正准备使用新域名http://www.pwmis.com/  ...

  4. rabbitmq实战指南 pdf_企业服务智能用户运营实战指南.pdf

    原标题:企业服务智能用户运营实战指南.pdf 有人曾说 2015 年是 SaaS 元年,在那之后国内的企业服务公司,如雨后春笋般涌现, 这几年在这个赛道我们看到了很多优秀的公司涌现,也有一些产品消失在 ...

  5. 删了手机里的一个html文件,手机操作篇:手机上怎么删除pdf其中一页

    原标题:手机操作篇:手机上怎么删除pdf其中一页 怎么删除pdf其中一页?这个问题难倒了很多的人,这里,小编提供了一个既简单又实用的方法.那就是教大家手机上怎么删除pdf其中一页. 1.有两个准备工作 ...

  6. PDF.NET数据开发框架操作MySQL实体类操作实例

    在我们最近的项目中,SQL-MAP使用较多,但是实体类用的很少,实际上,"PDF.NET数据开发框架"的实体类相当强大,下面的测试程序是在MySQL中操作的实例. 1,首先在App ...

  7. 【干货】2021中国“企服企业”规模化获客体系建设指南.pdf(附下载链接)

    省时查报告-专业.及时.全面的行研报告库 省时查方案-专业.及时.全面的营销策划方案库 大家好,我是文文(微信号:sscbg2020),今天给大家分享神策研究院和红杉资本联合发布的报告<2021 ...

  8. 如何在功能、特点、价格和性能方面选择PDF编辑器?

    PDF格式.PDF (Portable Document Format) 可移植文档格式"的缩写,最初由 Adob​​e Systems 创建,用于交换和分发具有复杂格式的文档.它有两大优势 ...

  9. vue 项目中分别使用 vue-pdf 插件和内嵌 iframe 实现 PDF 文件预览,缩放,旋转,下载,保存等功能 ?

    需求:在 vue  和 element-ui 项目中,有点击按钮预览,下载,打印 PDF 文件 需求,要求支持 PDF 的预览,上下页切换,首尾页切换,页码选择跳转,放大缩小,顺时针逆时针旋转,下载, ...

最新文章

  1. Rank() over()的用法
  2. 服务器端开发经验总结 Linux C语言
  3. 解读丨从自动驾驶到学习机器学习:科技发展的15大趋势
  4. set Autotrace的使用
  5. java android 数组_Android开发基础之Java 数组
  6. python基础-函数之装饰器、迭代器与生成器
  7. 一个神奇的???whatever~~
  8. PR第三次培训笔记(视频效果 转场)
  9. 【H5】 svg的 defs用法 渐变
  10. 移动硬盘读取速度突然变慢?教你7个方法解决
  11. 【推理引擎】ONNXRuntime 的架构设计
  12. css写阴影颜色渐变,css3——阴影(立体感,层次效果),渐变色按钮
  13. 图灵书籍源码下载地址
  14. linux 源码安装7za
  15. 学原油期货买什么书(怎么样买原油期货)
  16. WPF教程(六)二进制资源
  17. ARM学习之汇编的学习
  18. 移动APP设计国外资源总汇
  19. java ee 结构图_J2EE领域的一些技术框架结构图
  20. OneClock - 不仅仅是桌面极简翻页时钟

热门文章

  1. 钱钟书是怎样做读书笔记的
  2. 用javascript编写的地址二级联动
  3. spss常态检验_【单选题】SPSS 软件中进行数据描述、 t 检验等分析的菜单是( )。 A. 文件 B. 数据 C. 转换 D. 分析...
  4. c#实现SharedMatting抠图算法
  5. 分享具体制作流程,利用下班时间听歌,昨天挣了400多
  6. java中给数组添加值的方法
  7. 关于“与google服务器通信时出现问题“
  8. 分享几段祖传的Python代码,拿来直接使用
  9. 接招吧,最强“高并发”系统设计 46 连问,分分钟秒杀一众面试者
  10. 声网-本地视频录制sdk配置说明