首页 > 数据库技术 > 详细

Linq to Sqlite连接

时间:2014-04-07 09:20:10      阅读:814      评论:0      收藏:0      [点我收藏+]

本人还是挺喜欢用Sqlite,鼓捣半天终于连上了,赶紧记录一下

1.当然还是新建一个项目,还是winform,

2.Vs2012添加NoGet,点击工具--扩展和更新,搜索NoGet,安装。

bubuko.com,布布扣

3.管理NoGet程序包,从工具中选,或右键点击项目都可,搜索Sqlite,安装

bubuko.com,布布扣

4.重新编译一下程序,添加SqliteDataContext类,代码如下

 

bubuko.com,布布扣
    /// <summary>
    /// 在“管理NUGET程序包”安装LINQ程序包
    /// 然后使用DataContext就可以连接sqlite了
    /// 引用要添加  system.Data.Linq;system.Data.SQLite;system.Data.SQLite.Linq
    public class SqliteDataContext : DataContext
    {
        public SqliteDataContext(string connection, MappingSource mappingSource) :
            base(connection, mappingSource)
        {
        }
        public SqliteDataContext(IDbConnection connection, MappingSource mappingSource) :
            base(connection, mappingSource)
        {
        }
        public SqliteDataContext(string connectionString) :
            base(new SQLiteConnection(connectionString))
        {
        }
        public SqliteDataContext(IDbConnection connection) :
            base(connection)
        {
        }

        public Table<Article> Article
        {
            get
            {
                return this.GetTable<Article>();
            }
        }
    }
bubuko.com,布布扣

 

 5.调用方式

bubuko.com,布布扣
            SqliteDataContext db = new SqliteDataContext(@"data source=D:\Documents\Visual Studio 2012\Projects\Yss20140406\Yss20140406\bin\Debug\YssDB");
            var temp =
                from t in db.Article
                select t;
            dataGridView1.DataSource = temp;
bubuko.com,布布扣

 

6.如果直接写上面的代码是会报错的,因为没有写实体类啊,可以自己写。我是用DbLinq生成的,只复制部分代码。如果完全用DbLinq生成的类会报错,与上面的引用有冲突,所以复制粘贴一下好了。

bubuko.com,布布扣
    [Table(Name = "main.Article")]
    public partial class Article
    {

        private string _context;

        private string _title;

        #region Extensibility Method Declarations
        partial void OnCreated();

        partial void OnContextChanged();

        partial void OnContextChanging(string value);

        partial void OnTitleChanged();

        partial void OnTitleChanging(string value);
        #endregion


        public Article()
        {
            this.OnCreated();
        }

        [Column(Storage = "_context", Name = "Context", DbType = "text", AutoSync = AutoSync.Never, CanBeNull = false)]
        public string Context
        {
            get
            {
                return this._context;
            }
            set
            {
                if (((_context == value)
                            == false))
                {
                    this.OnContextChanging(value);
                    this._context = value;
                    this.OnContextChanged();
                }
            }
        }

        [Column(Storage = "_title", Name = "Title", DbType = "text", AutoSync = AutoSync.Never, CanBeNull = false)]
        public string Title
        {
            get
            {
                return this._title;
            }
            set
            {
                if (((_title == value)
                            == false))
                {
                    this.OnTitleChanging(value);
                    this._title = value;
                    this.OnTitleChanged();
                }
            }
        }
    }
bubuko.com,布布扣

 

附1:在Vs2012中操作Sqlite,安装下sqlite-netFx45-setup-bundle-x86-2012-1.0.84.0就可以了,官网有下。

bubuko.com,布布扣

附2:Dblinq网上有很多使用方法,我就不详细写了,我的下载包里也有,包含命令。

附3:练习代码下载

http://pan.baidu.com/s/1jGr6cD4

Linq to Sqlite连接,布布扣,bubuko.com

Linq to Sqlite连接

原文:http://www.cnblogs.com/yanshanshuo/p/3648836.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!