Пример кода с использованием 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))]

Кажется, сейчас работает, я наконец-то получаю результаты из моей БД.

Другие вопросы по тегам