您的位置:首页 > 数据库

NDatabase 入门,简单使用 增删改查。让NDatabase带你脱离ADO.net,各种SQL 语句,各种DBMS,各种CRM,IOC之类的烦恼。我们也不需要仓库设计模式了,你妹的。不要表了,不要设计数据库字段了。就这样!

2013-03-19 06:30 951 查看
今天 发现 新大陆了...正如你所看到的。。。。是的,NDatabase,

以后 .net 可能因此 变得 更强大,更富有生命力

为什么需要NDatabase。。。。因为很多原因。。。

从此 在很多时候,你很可能不需要 IOC,ORM,ADO.net,SQL语句,各种DBMS。。。。。也不需要建表。。。。为字段长度设计而烦恼。。。各种烦恼。

这篇文章 是 我看到院子里面 这家伙的文章发现的。。。
http://www.cnblogs.com/asxinyu/archive/2013/02/20/2918066.html
。。。。。感谢他。(感谢一楼同学提醒,使得我补充了 修改数据的代码)

这篇文章没有什么深奥的东西,只是很简单的一些东西。

或者说很肤浅,只有很简单的增删改查。

上代码——模型:

public class UserModel
{
public string Name;
public string Password;
public string Email;
public string QQ;
public string Phone;
public DateTime RegistTime;
public DateTime LastLoginTime;
public DateTime CurrentLoginTime;
}


上代码——简单包装一下:

public class DB
{
public static string DBName="DB.db";

public static IOdb Open()
{
return OdbFactory.Open(DBName);
}
}


上代码——简单查询:

using (var db = DB.Open())
{
var query= db.Query<UserModel>();// 生成一个查询
query.Descend("Email").Constrain(usermodel.Email).Equal();// 查询Email属性是否等于usermodel.Email对象的值
if(query.Execute<UserModel>().Count == 0)// 执行查询
{
db.Store<UserModel>(usermodel);// 保存usermodel对象。
}
}


上代码-查询:

//这是我项目里面登录代码的一部分逻辑。。。
using (var db = DB.Open())
{
var query = db.Query<UserModel>();
query.Descend("Name").Constrain(umodel.Name).Equal().And(query.Descend("Password").Constrain(umodel.Password).Equal());//这里是查询有没有用户名和密码相同的对象

if (query.Execute<UserModel>().Count > 0)//结果是否大于0
{
FormsAuthentication.SetAuthCookie(model.Name, model.RememberMe);//Form验证。。。
RedirectToAction("Index");
}
else
{
RedirectToAction("Login");
}
}


上代码-删除:

//删除就是Delete。。。。
//具体不写了,看看官方的例子吧,很简单就是了。。。。


如你所见,这里没有很多分层,事实上,一起都变得简单了很多。。。

Ndatabase在使用的时候,不需要建库,不需要建表,建库只需要Open(文件路径)。建表只需要把一个对象Store。。。就ok了。。。

速度,性能。。。?我想几乎比常用的DBMS都要好。当然随着数据量的增大,我还没有测过。。。

调用很方便,原生C#,只需要一个dll。。。。

事实上,这要比SQLite要好很多。。。

这个项目貌似是2012年年底刚出现的,就在Codeplex上面。支持PC,Sliverlight,WP。

无论如何,这个项目的出现虽然暂时无法 撼动 关系型数据库的地位,但是,至少是有力的一击。对象数据库 在.net 上又迈出了一步。

为何要支持对象数据库?因为,如果你是码农,那么对象数据库的出现就好像是现代化农业。。。你要做的就是操作操作一些农用机器,管理大面积的土地,而不是像从前,拿着锄头,钉耙,铲子,铁犁这些。。。

补充:更新(修改)和删除的代码:

//*************修改数据的例子**************这里代码的例子与上面的不同,这里的来自官方,被我稍作修改
using (var odb = OdbFactory.Open("DB.db"))//打开数据库
{
IList<Warrior> warriors = odb.Query<Warrior>().Execute<Warrior>().ToList();//首先检索出来(当然这里检索的时候你也可以自己加检索条件)

warriors[0].RightHand = sword1;//修改字段的值
warriors[0].LeftHand = field1;//修改字段的值

warriors[1].RightHand = sword2;//修改字段的值
warriors[1].LeftHand = field2;//修改字段的值

odb.Store(warriors[0]);//调用Store方法把更改的对象重新持久化到文件里面
odb.Store(warriors[1]);//调用Store方法把更改的对象重新持久化到文件里面
}

//哦,就是这么简单。。。

//*************顺便加一下删除的例子吧**************这里代码的例子与上面的不同,这里的来自官方,被我稍作修改

using (var odb1 = OdbFactory.Open("DB.db"))//打开数据库
{
IList<Warrior> warriors = odb1.Query<Warrior>().Execute<Warrior>().ToList();//还是一样,先检索出来(当然这里检索的时候你也可以自己加检索条件)

odb1.Delete(warriors[0]);//是的直接调用Delete方法,删除之就ok了
odb1.Delete(warriors[1]);//是的直接调用Delete方法,删除之就ok了
}


好吧,感谢一下一楼的 Quella 同学的提醒。。。。

让我好好享受 这个数据库给我们带来的便捷吧。。。。

让NDatabase带你脱离ADO.net,各种SQL 语句,各种DBMS,各种CRM,IOC之类的烦恼。我们也不需要仓库设计模式了,你妹的。不要表了,不要设计数据库字段了。就这样!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐