Когда и как создается таблица в SQL CE WP7? - PullRequest
0 голосов
/ 20 января 2012

Я следовал инструкции Как создать базовую локальную базу данных приложения для Windows Phone из MSDN, и у меня возник вопрос о создании таблицы. В основном, когда они создают класс ToDoDataContext, у них есть конструктор и статическое свойство для строки подключения, что имеет смысл, но затем они помещают другое свойство с именем ToDoItems (типа Table). Теперь логически это имеет смысл, потому что это таблица для ToDoItems, но что не имеет смысла, так это то, что мы никогда фактически не назначаем ее базе данных. Когда я запустил программу, она просто создала таблицу. Мне было интересно, когда база данных создается, она автоматически знает, чтобы добавить эту таблицу в базу данных только потому, что она этого типа, или она добавляется где-то еще?

РЕДАКТИРОВАТЬ: Вот конкретный кусок, который я ссылаюсь на:

public class ToDoDataContext : DataContext
{
    // Specify the connection string as a static, used in main page and app.xaml.
    public static string DBConnectionString = "Data Source=isostore:/ToDo.sdf";

// Pass the connection string to the base class.
public ToDoDataContext(string connectionString)
    : base(connectionString)
{ }

// Specify a single table for the to-do items.
public Table<ToDoItem> ToDoItems;
}

1 Ответ

2 голосов
/ 20 января 2012

Вы присваиваете Table<ToDoItem> базе данных тем самым, добавляя ее в производный класс DataContext.Код базы данных в ОС может проверить ваш класс DataContext на предмет поиска Table<T> и затем создать правильную инфраструктуру базы данных при вызове db.CreateDatabase().

...