DataVeryLite入门教程(一) 配置篇
DataVeryLite 是基于.net 4.0的数据库持久化ORM框架.
1.连接字符串配置
a,App.config/Web.config配置方式
<add name="myConnetion" connectionString="Data Source=host;Initial Catalog=db;Integrated Security=True" providerName="sqlserver"/>
需要说明的是 name connectionString和providerName三个属性缺一不可
| DataBase | Connection String sample | providerName |
|---|---|---|
| Sqlite | Data Source=path;Version=3; | sqlite |
| Access | Provider=Microsoft.Jet.OLEDB.4.0;Data Source=path | access |
| MySql | server = host; user id = name; password = pwd; database = db; | mysql |
| PostgreSql | Server= host;User Id=name;Password=pwd;Database=db; | postgresql |
| SqlServer | Data Source=host;Initial Catalog=db;Integrated Security=True | sqlserver |
| Db2 | Database=db;User ID=name;Server=host;password=pwd | db2 |
| Oracle | Data Source=XE;User Id=name;Password=pwd; | oracle |
public class MyConnectionStringProvider : ConnectionStringSettingsProvider
{
public override List<ConnectionStringSettings> ToConnectionString()
{
var sqlServverConnStr = new ConnectionStringSettings
{
Name = "sqlserver1",
ConnectionString = "Data Source=host;Initial Catalog=db;Integrated Security=True",
ProviderName = "sqlserver"
};
var mysqlConnStr = new ConnectionStringSettings
{
Name = "mysql1",
ConnectionString = "server = host; user id = name; password = pwd; database = db;",
ProviderName = "sqlserver"
};
return new List<ConnectionStringSettings>() { sqlServverConnStr,mysqlConnStr };
}
}
2,数据库映射
[DataBase(Key = "sqlserver1")]
public class Dandelion : DataVeryLite.Core.EntityPool
{ }
DataBaseAttribute中的Key属性对应的连接字符串配置中的key值,这样Dandelion会自动加载数据库上下文信息。
[Table(Name = "Person" , EntityPool = typeof(Dandelion))]
public partial class Person : DataVeryLite.Core.Entity
{
[Column(Name = "Id", IsPrimaryKey = true)]
public int Id { get; set; } [Column(Name = "Name")]
public string Name{ get; set; } [Column(Name = "Sex")]
public string Sex { get; set; } [Column(Name = "Phone")]
public string Phone { get; set; } [Column(Name = "Email")]
public string Email { get; set; }
}
TableAttribute中的Name为表的名字。可以不设置,这时Person的类名就对应表的名字,如果我们需要类名和表名不一致,这时可以设置Name。
Configure.SetKey = (sender) => "sqlserver1";
或
Configure.SetKey = (sender) =>
{
if (sender is Dandelion)
{
return "sqlserver1";
}
else
{
return "mysql1";
}
};
项目地址 http://dataverylite.codeplex.com/
NuGet
PM> Install-Package DataVeryLite
Example lite
using System;
public class HelloWorld
{
public static void Main(params string[] args)
{
var p=Models.Xe.Person();
p.Load(By.Id(1));
p.Del();
Console.WriteLine(p.Name+","+p.Age);
}
}
DataVeryLite入门教程(一) 配置篇的更多相关文章
- DataVeryLite入门教程(二) Entity篇
DataVeryLite 是基于.net 4.0的数据库持久化ORM框架. 目前支持的数据库有Sqlserver,Mysql,Oracle,Db2,PostgreSql,Sqlite和Access. ...
- Systemd 入门教程:实战篇
Systemd 入门教程:实战篇 上一篇文章,介绍了 Systemd 的主要命令,这篇文章主要介绍如何使用 Systemd 来管理我们的服务,以及各项的含义: 一.开机启动 对于那些支持 System ...
- Spring Cloud 入门教程 - 搭建配置中心服务
简介 Spring Cloud 提供了一个部署微服务的平台,包括了微服务中常见的组件:配置中心服务, API网关,断路器,服务注册与发现,分布式追溯,OAuth2,消费者驱动合约等.我们不必先知道每个 ...
- 【转帖】Systemd 入门教程:命令篇
Systemd 入门教程:命令篇 Copy From http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-commands.html 感觉 ...
- Linux Capabilities 入门教程:概念篇
原文链接:Linux Capabilities 入门教程:概念篇 Linux 是一种安全的操作系统,它把所有的系统权限都赋予了一个单一的 root 用户,只给普通用户保留有限的权限.root 用户拥有 ...
- Linux 命令详解(八)Systemd 入门教程:实战篇
Systemd 入门教程:实战篇 http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-part-two.html
- Linux 命令详解(七)Systemd 入门教程:命令篇
Systemd 入门教程:命令篇http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-commands.html
- (转)Systemd 入门教程:命令篇
Systemd 入门教程:命令篇 原文:http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-commands.html Systemd 入门 ...
- SSH(Struts2+Spring4+Hibernate4)框架教程之配置篇
SSH(Struts2+Spring4+Hibernate4)框架教程之配置篇 - 若明天不见 - 博客频道 - CSDN.NEThttp://blog.csdn.net/why_still_conf ...
随机推荐
- 【50.49%】【codeforces 731B】Coupons and Discounts
time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...
- React Native中的DeviceEventEmitter.addListener与DeviceEventEmitter.emit
官方文档没有对这两个方法做很好的解释,需要自己找资料研究.看了几篇文章,总结是和订阅发布模式差不多,用来事件监听发送的. React Native学习之DeviceEventEmitter传值 R ...
- BS_OWNERDRAW风格的作用和例子(值得研究,待续)
TBitBtn就是一个例子: procedure TBitBtn.CreateParams(var Params: TCreateParams); begin inherited CreatePara ...
- jQuery迭代器
http://www.imooc.com/code/3417 迭代器 迭代器是一个框架的重要设计.我们经常需要提供一种方法顺序用来处理聚合对象中各个元素,而又不暴露该对象的内部,这也是设计模式中的迭代 ...
- 一句话的设计模式(JAVA版)
·结构型模式: o适配器:用来把一个接口转化成另一个接口,如 java.util.Arrays#asList(). o桥接模式:这个模式将抽象和抽象操作的实现进行了解耦,这样使得抽象和实现可以独立地变 ...
- 《菊与刀》original 的阅读
0. 词汇 foe:敌人,反对者,危害物: rigid:严格的,僵硬的,死板的, they are incomparably rigid in their behavior, innovation:革 ...
- SEO分享:为什么我的资源外链这么多的高品质?
在小浪前制成的制品" [完整版]我怎么3的月800单词索引厨师主页!".之后,很多人都表示了极大的钦佩观看.顽强的运行力,真SEO它是运行顽强的力量.也有人说是吹牛吧,一天500外 ...
- Matlab随笔之插值与拟合(上)
原文:Matlab随笔之插值与拟合(上) 1.拉格朗日插值 新建如下函数: function y=lagrange(x0,y0,x) %拉格朗日插值函数 %n 个节点数据以数组 x0, y0 输入(注 ...
- Effective C++:规定24:如果所有的单位都需要的参数类型转换,使用请做到这一点non-member功能
(一个) 如果一个class.同意整数"隐式转换为"有理数似乎非常合理. class Rational{ public: Rational(int numerator = 0, i ...
- Feature extraction - sklearn文本特征提取
http://blog.csdn.net/pipisorry/article/details/41957763 文本特征提取 词袋(Bag of Words)表征 文本分析是机器学习算法的主要应用领域 ...