entityframework
system.data.sqlite
system.data.sqlite.core
system.data.sqlite.ef6
system.data.sqlite.linq
name="sqlitetest"
connectionstring="data source=e:\retail.db"
providername="system.data.sqlite.ef6" />
connectionstrings>
2.然後就可以 編寫資料庫上下文和實體了,然後就可以用了
public
class retailcontext : dbcontext
public dbsetthumbnails
} public
class thumbnail
[required]
[unique]
public
string orginfilepath
[required]
public
string thumbnailpath
[required]
public datetime lastupdatetime
}
不過在執行過程中你可能會遇到這個錯誤sqlite error of 「unable to find the requested .net framework data provider."system.data.sqlite"
type="system.data.sqlite.ef6.sqliteproviderservices, system.data.sqlite.ef6" />
完整的如下:
invariantname="system.data.sqlite.ef6"
type="system.data.sqlite.ef6.sqliteproviderservices, system.data.sqlite.ef6" />
invariantname="system.data.sqlclient"
type="system.data.entity.sqlserver.sqlproviderservices, entityframework.sqlserver" />
invariantname="system.data.sqlite"
type="system.data.sqlite.ef6.sqliteproviderservices, system.data.sqlite.ef6" />
providers>
public
class thumbnailcontext : dbcontext
}private
thumbnailcontext(dbconnection con) : base(con, true)
public dbsetthumbnails
}
sqlite預設不支援codefirst模式,如果使用者因為某些操作刪除了我們的db檔案,此時我們的程式就不能正常工作了,是不是有點尷尬?不過還是有解決辦法的,在nuget裡搜尋sqlite.codefirst
安裝即可。
然後重寫dbcontext
的onmodelcreating
方法。這裡是修改後的資料庫上下文:
public
class thumbnailcontext : dbcontext
}private
thumbnailcontext(dbconnection con) : base(con, true)
protected
override
void
onmodelcreating(dbmodelbuilder modelbuilder)
public dbsetthumbnails
}
在使用過程中你可能會察覺到,每當第一次訪問資料庫(查詢、插入等)時總是會慢一點,可能有1秒的時間資料庫才會做出響應,然後接下再操作就很快。
這是因為當你第一次訪問資料庫時,ef需要在記憶體中建立實體與資料庫表的對映關係,這個操作需要點時間。所以在你的程式一啟動的時候就要把關係給對映好。
這裡以上面的thumbnailcontext
為例,首先new乙個物件,假設為dbcontext
。然後在你整個應用程式的入口點呼叫下述**:
public
void
init()
後記:通過ef來訪問sqlite資料庫,我也使用了有一段時間了,但是有時候會出現幾個莫名奇妙的問題,而且還不太好定位,不知道是不是ef和sqlite不太相容的問題。現在嘗試改為用ado.net來訪問,於是就有了接下來的這篇文章:【c#】使用ado.net訪問sqlite資料庫,sqlitehelper幫助類。
1. sqlite3+ef6踩的坑2. 讓entityframework6支援sqlite
C 使用EF訪問Sqlite資料庫
原文 c 使用ef訪問sqlite資料庫 entityframework system.data.sqlite system.data.sqlite.core system.data.sqlite.ef6 system.data.sqlite.linq name sqlitetest connect...
應用EF訪問SQLite資料
1 建立專案 專案結構初始結構如下圖所示,netage.data.sqlite 類庫專案用於定義訪問資料的介面和方法,netage.sqlitetest.ui 控制台專案引用 netage.data.sqlite 類庫,呼叫其相應的方法來訪問資料。2 在專案中加入sqlite類庫 右鍵 netage...
C 訪問SQLite資料庫
a.解壓後copy c sqlite 3 5 0 b.進入cmd模式,進入sqlite 3 5 0目錄,執行sqlite3 mytest.db c.create table mytable1 seq int,desc varchar 8 insert into mytable1 values 1,p...