我正在尝试将本地 SqlLite 数据库(在我的 app_data 中)文件夹与 LinqToDb 一起使用。
有人知道为什么 LinqToDb 不能使用以下连接字符串吗?
<connectionStrings>
<add name="RecyclesDB"
providerName="System.Data.SqlLite"
connectionString="data source=|DataDirectory|Recycles.sqlite3;Version=3;"
/>
</connectionStrings>
我可以完美地使用这个连接字符串以老式的方式检索数据。
SQLiteConnection sqlConn;
var sqlCmd = new SQLiteCommand();
using (sqlConn = new SQLiteConnection(ConfigurationManager.ConnectionStrings["RecyclesDB"].ConnectionString))
{
sqlConn.Open();
sqlCmd.Connection = sqlConn;
/* .... */
}
但是,当我尝试将 LinqToDB 与以下 t4 模板一起使用时,它会失败
<#@ template language="C#" debug="True" hostSpecific="True" #>
<#@ output extension=".generated.cs" #>
<#@ include file="$(ProjectDir)LinqToDB.Templates\LinqToDB.SQLite.Tools.ttinclude" #>
<#@ include file="$(ProjectDir)LinqToDB.Templates\PluralizationService.ttinclude" #>
<#
NamespaceName = "RecycleDashboard";
LoadSQLiteMetadata(LoadSQLiteMetadata(@"C:\inetpub\RecycleDashboard\app_data", "Recycles.sqlite3"););
GenerateModel();
#>
指定问题。T4 模板可以生成模型,但是当我尝试将这些与以下代码一起使用时,我得到一个空引用
using (var db = new RecyclesDB())
{
var recycles =
(from recycle in db.AppRecycles
select recycle).ToList();
}
new RecyclesDB() 的例外是:
System.NullReferenceException was unhandled by user code
HResult=-2147467261
Message=Object reference not set to an instance of an object.
Source=linq2db
StackTrace:
at LinqToDB.Data.DataConnection..ctor(String configurationString) in i:\linq2db\Source\Data\DataConnection.cs:line 41
at LinqToDB.Data.DataConnection..ctor() in i:\linq2db\Source\Data\DataConnection.cs:line 24
at RecycleDashboard.RecyclesDB..ctor() in
...
有人知道这里有什么问题吗?