@sergeyfk

Как создать БД использую LINQ?

Как создать БД состоящая из нескольких таблиц?
Пока я смог написать только это
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; }
    }
  • Вопрос задан
  • 303 просмотра
Решения вопроса 1
Ух ты, даже готовые классы, чтобы меньше писать? Ну хоть на этом спасибо ))

p/s есть готовые классы - используй Code-First подход. Не нужно никаких Raw Sql команд.

Для EF:
https://msdn.microsoft.com/en-us/library/jj193542(...
https://metanit.com/sharp/entityframework/1.2.php

Для EF Core
https://docs.microsoft.com/en-us/ef/core/get-start...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы