Пример кода с использованием DBLinq, SQLite
Может ли кто-нибудь опубликовать небольшой пример кода с рабочим соединением, используя DBLinq, SQLite? Я изо всех сил пытался получить это и работает в среде VSF WPF в течение 2 дней. Я думаю, что у меня есть строка подключения, но хотелось бы увидеть пример и запустить его.
var con = new SQLiteConnection("DbLinqProvider=Sqlite;Version=3;Data Source=c:\\temp\\testdb.db3;");
DataSource db = new DataSource(con);
var q = from c in db.Person
select c;
foreach (Person tempPerson1 in q)
MessageBox.Show(tempPerson1.Name);
Мой файл DBML (соответствующий код) - я изменил "Main" на "DataSource", а SQLite на System.Data.SQLite.SQLiteConnection для его компиляции.
[global::System.Data.Linq.Mapping.DatabaseAttribute(Name="DataSource")]
[global::System.Data.Linq.Mapping.ProviderAttribute(typeof(System.Data.SQLite.SQLiteConnection))]
public DbLinq.Data.Linq.Table<Person> Person {
get {
return this.GetTable<Person>();
}
}
[global::System.Data.Linq.Mapping.TableAttribute(Name="Datasource.Person")]
public partial class Person {
private string _id;
private string _name;
public Person() { }
[global::System.Data.Linq.Mapping.ColumnAttribute(
Name="id", Storage="_id", DbType="VARCHAR(10)")]
public string ID {
get {
return this._id;
}
set {
if ((this._id != value)) {
this._id = value;
}
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(
Name="name", Storage="_name", DbType="VARCHAR(25)")]
public string Name {
get {
return this._name;
}
set {
if ((this._name != value)) {
this._name = value;
}
}
}
}
В настоящее время я получаю сообщение об ошибке SQLite, что такой таблицы нет: Datasource.Person и я полагаю, что у меня правильный путь и строка подключения. Должен ли я создать файл DBML и файл CS из DBMetal?
1 ответ
Решение: я восстановил файл DBML, не изменил "основное" на другое имя, включил ссылку на "Использование System.Data.SQLite" и изменил
[global::System.Data.Linq.Mapping.ProviderAttribute(typeof(Sqlite))]
в
[global::System.Data.Linq.Mapping.ProviderAttribute(typeof(SQLiteConnection))]
Кажется, сейчас работает, я наконец-то получаю результаты из моей БД.