Пример кода с использованием DBLinq, SQLite - PullRequest
2 голосов
/ 20 июня 2011

Может ли кто-нибудь опубликовать небольшой пример кода с рабочим соединением, используя 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 Ответ

3 голосов
/ 21 июня 2011

Решение: я восстановил файл DBML, не изменил «main» на другое имя, включил ссылку на «Using System.Data.SQLite» и изменил

[global::System.Data.Linq.Mapping.ProviderAttribute(typeof(Sqlite))]

на

[global::System.Data.Linq.Mapping.ProviderAttribute(typeof(SQLiteConnection))]

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

...