Как создать БД состоящая из нескольких таблиц?
Пока я смог написать только это
SQLiteConnection connection = new SQLiteConnection();
connection.ConnectionString = (String.Format("Data Source = {0}; Vesion = 3;", savepath));
DataContext db = new DataContext(connection);
Ну и сразу как добавить FOREIGN KEY при создание БД.
Для наглядности попрошу сделать такой пример. Вот и создаю таблицу такими коммандами
RunCommand(@"CREATE table [menu] (
[id] integer PRIMARY KEY AUTOINCREMENT NOT NULL,
[name] varchar(100) NOT NULL
); ");
RunCommand(@"CREATE table [sub_menu] (
[id] integer PRIMARY KEY AUTOINCREMENT NOT NULL,
[name] varchar(100) NOT NULL,
[owner_menu_id] integer NOT NULL,
FOREIGN KEY (owner_menu_id)
REFERENCES menu (id)
ON UPDATE CASCADE
ON DELETE CASCADE
);");
Ну и держите почти готовые классы, чтобы меньше писать:
[Table(Name = "Menu")]
public class Menu
{
[Column(Name = "Id", CanBeNull = false, IsPrimaryKey = true, DbType = "int PRIMARY KEY AUTOINCREMENT NOT NULL", IsDbGenerated = true, AutoSync = AutoSync.OnInsert)]
public int Id { get; set; }
[Column(Name = "Name", CanBeNull = false, DbType = "varchar(100) NOT NULL")]
public string Name { get; set; }
}
[Table(Name = "SubMenu")]
public class SubMenu
{
[Column(Name = "Id", CanBeNull = false, IsDbGenerated = true, DbType = "int PRIMARY KEY AUTOINCREMENT NOT NULL", AutoSync = AutoSync.OnInsert)]
public int Id { get; set; }
[Column(Name = "Name", CanBeNull = false, DbType = "varchar(100) NOT NULL")]
public string Name { get; set; }
[Column(Name = "OwnerMenuId", CanBeNull = false, DbType = "int NOT NULL")]
public string OwnerMenuId { get; set; }
}