oracle pwmis,README.md

本文介绍了如何从Entity Framework转向使用SOD框架,提供了一个简单的ORM使用实例。首先,通过Nuget包管理器安装SOD框架,然后创建实体类和DbContext。接着,修改App.config配置连接数据库,最后展示如何使用SOD进行数据操作,包括创建表、插入和查询数据。SOD框架支持多种数据库,具备轻量级、易用的特点。
摘要由CSDN通过智能技术生成

*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  [this page] (http://www.pwmis.com/sqlmap)

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

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

要了解更多,请看[这篇文章](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,首先建立一个实体类:

```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); }

}

}

```

* 2,然后建立一个 DbContext:

```c#

class LocalDbContext:DbContext

{

public LocalDbContext()

: base("local")

{

//local 是连接字符串名字

}

protected override bool CheckAllTableExists()

{

//创建用户表

CheckTableExists();

return true;

}

}

```

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

```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,然后,像下面这样使用,即可自动创建数据库和表,并且添加一条初始数据:

```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 方式插入数据

```

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

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

```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);

```

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

```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();

```

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

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

```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();

```

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

附注:

```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());

}

```

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

----

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

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

一键复制

编辑

Web IDE

原始数据

按行查看

历史

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值