登录
首页 » C# » LINQ TO SQLite 完整例子源码下载

LINQ TO SQLite 完整例子源码下载

于 2013-07-20 发布
0 78
下载积分: 1 下载次数: 0

代码说明:

前言 当前,软件应用程序中,数据库已经成为不可缺少的重要组成部分.然而传统数据库正趋向巨无霸化,对系统的要求一步步提高,管理成本也越来越大,对于中小型项目的应用,它的很多功能变得越来越多余,但是我却不得不为这些不需要的功能付出更多的资金和人力成本. 在这些场景,嵌入式数据库的轻量,零部署,跨平台,义移植,无疑有着传统数据库无可比拟的优点,当然为此我们必须放弃高容量,高性能,高并发,不过谁在乎这些呢?我们只是中小型应用而已,大小不上百万,并发不超万^_^. 在.Net中,我们可以选择的嵌入式数据库还是挺多的,db4o,sqlite,各种xml db. 我之前更倾向于使用db4o,db4o对于用传统ADO.Net驱动的开发有更多的优势,无需手动Mapping,零SQL.不过整因为db4o做了很多处理,所以在数据持久化的过程中,我们能干预的也很少,而db4o在复合属性,级联属性,特别当整个系统使用富领域模型设计的时候,保存数据的时候往往会出错.为此我们不得不自己手工持久化复合对象中的各个对象,增加关联字段进行关联,这样一来就越加靠近SQL Server之类的传统数据库的时候,显得名不符实.而在web应用中,为了提供并发的能力,还必须使用server/client的模式进行数据传输.总让我感觉有那么点点别扭. 自从DLINQ出来之后,我的项目越来越依赖于它,它让我们的程序更加优雅清晰,再也不用无聊的拼凑一段又一段的sql,编写一遍又遍的配置.可惜的是MS只提供LINQ TO SQL(MS SQL SERVER)的实现. 还好LINQ思想出现之后,社区里涌现了各种各样的LINQ Provider程序,大有一切皆LINQ的架势(LINQ TO Everything),SQLite自然不例外.今天我们进来唠唠如何将SQLite引入我们的开发. ADO.Net Provider&LINQ Provider 首先,下载SQLite的LINQ Provider,在网上我们可以找到两个LINQ Provider For SQLite. 一个是phxsoftware的System.Data.SQLite,另一个是devart的dotConnect for SQLite. System.Data.SQLite是开源产品,而dotConnect For SQLite是商业产品(有个一个免费普通版本).我们这里选择System.Data.SQLite作为我们的LINQ Provider. 从Sourceforge下载SQLite-1.0.60.0-setup.exe,然后安装.结束的时候,会让你Install SQLite Design-Time Support,把里面的VS2005/VS2008 都打上勾 这样子你就可以在VS的Server Explorer里面像管理SQL Server的数据库一样管理你的SQLite数据库文件.安装完之后,我们得到以下文件 创建数据库 要创建一个空的SQLite数据库,可以选择两种方式. 1. 从http://www.sqlite.org/download.html下载Window下的程序(http://www.sqlite.org/sqlite-3_6_19.zip),然后通过命令行创建. .db3后缀名可以任意,你也可以使用其他的任意后缀名. 在sqlite>的shell下,必须输入什么,如果直接.exit退出的话,数据库文件将不会被创建 2.从http://www.sqlite.org/cvstrac/wiki?p=ManagementTools下载各种GUI程序. 数据库文件创建好了之后,拷贝到你想要的位置,然后打开VS的Server Explorer(当然如果你使用GUI程序,你就不需要VS的这个功能了),我们可以在里面维护表信息     我们先设计两个表,以便继续下面的步骤. 创建项目 创建DataContext 当你将表拉入dbml的时候,会得到如下错误"The selected object(s) use an unsupported data provider." dbml designer和DLINQ一样,微软只实现了For SQL SERVER的功能,其他数据库都没实现.既然不能生成dmbl,那我们生成code就好了,反正这个layout我们一般也没什么用.找到从windows sdk目录下找到Code Generation Tool (SqlMetal.exe). 不幸的是,这个东东也只支持MS本家的东西,而且不支持Generator扩展-_-!!!. 既然phxsoftware提供的LINQ Porivder,说不定有提供自定义的代码生成工具.不过看来看去,发现只支持Entity Frameworkd Entity Model的生成,但是没有LINQ TO SQLite的支持(dotConnect for SQLite 倒是对二者都支持). 难道我们要手动编写DataContext?怎么可能,肯定有人实现了,google下,找到了一个DLINQ2007的项目,提供好多LINQ Provider的实现(包括SQLite).发现里面有个DbMetal.exe,支持从SQLite生成DataContext类.虽然不如MS的的完美,不过能自动生成基本的DataContext,这就是最大的收获,不然像我这么依赖LINQ的人只好放弃SQLite了^_^.DbMetal.exe生成DataContext的命令行,类似SqlMetal.exe. DbMetal.exe /database:TestDataContext  /schema /namespace=LinqToSQLite /sprocs /entityInterfaces= /culture="en"  /code=Test.cs /provider=Sqlite  /conn="data source=D:docmydatacodeLinqToSQLitedllsTest.db3" /database指定类名, /namespace=LinqToSQLite指定命名空间...,具体的参数可以在命令行下获取到(dbmetal.exe /?). 不过这个DbMetal.exe一样不完善,不是什么结构都可以生成,比如数据库带有外键的话,生成就会出错.   生成后的代码大概如下(可能需要手工清理下SystemTable的对应的class): public partial class TestDataContext : DbLinq.Data.Linq.DataContext{ public TestDataContext(System.Data.IDbConnection connection): base(connection, new DbLinq.Sqlite.SqliteVendor()){} public TestDataContext(System.Data.IDbConnection connection, DbLinq.Vendor.IVendor vendor): base(connection, vendor){} public Table Order { get { return GetTable(); } } public Table OrderItem { get { return GetTable(); } } }  

下载说明:请别用迅雷下载,失败请重下,重下不扣分!

发表评论

0 个回复

  • opc客户端源码下载
    opc
    2016-03-29下载
    积分:1
  • 开源的.net矢量图、流程图绘制软件 Netron2009
    .net开源的矢量图、流程图这绘制软件,对学习.Net项目中的MVC架构、C#编程、GDI 图像处理、实现应用程序的撤消与重做等其他很多知识都有很好的帮助。
    2014-10-27下载
    积分:1
  • C# WPF实现的连连看功能源码下载
    C# WPF实现的连连看功能源码下载
    2013-10-02下载
    积分:1
  • asp.net 积分管理系统源码下载
    BS积分消费管理系统
    2017-05-22下载
    积分:1
  • 通过程序自动填充并提交ASP.NET表单(Form)
    AutoPostWithCookies
    2020-11-27下载
    积分:1
  • VC++餐厅餐饮管理系统(源码+数据库+开发文档)
    1.直接运行DEBUG 文件夹中的MyPos.exe文件即可运行本系统。2.用VC打开跟目录下的MyPos.dsw文件,进行编译然后运行系统。系统初始密码均为123Tom 为一般用户,Alex为管理员用户。 【功能说明】4.2功能说明餐饮管理系统功能模块说明如下:前台营业日常营业操作功能,包括:l 日始日结:设定每个营业日的开始和结束,并且进行每日营业的初始化及员工交接班。l 点菜收银:点菜(包括代码输入、名称输入、鼠标输入等)、账单结帐(包括现金结帐、信用卡结帐、签单等)、修改账单(包括折扣、调整服务费等。如果客人是协议单位(合约公司)、VIP卡(会员卡),还将调用相应的折扣优惠等)。l 接待预订:新开台、厅房预定。营业设置日常营业所必需的数据库设定,包括:l 菜式管理:新菜式录入(包括菜式名称、代码、价格、成本等)、菜式修改、删除等菜式维护。l 酒品饮料管理:酒品饮料录入(包括名称、代码、价格、成本等)、修改、删除等。l 付款方式设置:分为人民币付款、信用卡、支票、宴请等。l 员工资料设置:包括员工的基本资料(姓名、生日、职务、籍贯),员工登陆名称、密码、员工权限等。l 其他设置:统计资料、前台销售情况等。营业分析与财务查询(由总经理室监控)可以对营业数据进行统计分析、打印报表,包括:l 销售分析:当月每天及当年每月的收入金额、成本、利润的分析。l 酒菜分析:各种酒菜的详细销售情况统计。l  查询各类单据和消费情况,包括:l 帐单查询:查询所有已结帐单l 点单查询:查询所有历史点单l 会员查询:查询会员卡消费情况l 挂帐查询:查询挂帐客人消费情况系统管理系统本身的管理功能,包括:l 系统信息:版权注册等l 系统维护:数据备份与恢复、导入导出等l 网络管理:启动设置和网络监控l 重新登录:以另一个用户名登录,不用退出系统即可更换操作员工l 退出系统:关闭程序帮助信息对系统的说明、使用指南等。
    2020-12-09下载
    积分:1
  • 图像预处理五种滤波
    图像预处理五种滤波
    2020-12-07下载
    积分:1
  • linq not in 示例源码(not in 不等于 contain(xx)==false)
    注意 cotain(xx)=false  在linq中 总是不成立的
    2014-06-27下载
    积分:1
  • Ninject依赖注入——构造函数、属性、方法和字段的注入 例子 附源码下载
    1、Ninject简介 Ninject是基于.Net平台的依赖注入框架,它能够将应用程序分离成一个个高内聚、低耦合(loosely-coupled, highly-cohesive)的模块,然后以一种灵活的方式组织起来。Ninject可以使代码变得更容易编写、重用、测试和修改。 Ninject官方网址为:http://www.ninject.org/ 。2、项目引用Ninject1>、 Tools -> Libaary Package Manager -> Package Manager Console,打开Package Manager Console窗口;2>、在Package Manager Console窗口中输入指令,Enter;1 PM> Install-Package Ninject3>、在项目中添加对Ninject的引用。3、Ninject使用Modules and the Kernel注入 Ninject中将类别以模块(Module)形式进行分组绑定,每一个模块代表应用程序的一个独立部分,这些模块可以根据需要进行组织。每一个模块都需要实现接口IModule,多数采用扩展StandardModule类来便捷实现。 Ninject依赖注入包括构造函数、属性、方法和字段的依赖注入
    2013-07-10下载
    积分:1
  • 取句柄软件
    【实例简介】
    2021-08-06 00:30:52下载
    积分:1
  • 696518资源总数
  • 104269会员总数
  • 31今日下载