Добавить массив string в MSQL через EntityFramework
Есть много таблиц в CSV надо на их основе создать таблицы в MSQL. Устанавливаю соединение:
public class HouseContext : DbContext
{
public HouseContext()
: base("DBConnection")
{ }
public DbSet<string[]> Houses { get; set; } //Таблица Houses
}
Пытаюсь создать таблицу с названиями столбцов
string[] rows = new string[]{"Id", "Adress", "Length"};
using (HouseContext db = new HouseContext())
{
db.Houses.Add(rows);
db.SaveChanges();
}
И тут он вылетает с ошибкой. Подскажите что не так?
Ответы (1 шт):
Массив строк не является допустим типом, возможно только указание своего класса, в котором будет описана структура, что-то типа:
public DbSet<House> Houses { get; set; } //Таблица Houses
где House:
public class House
{
public int Id { get; set; }
public string Address { get; set; }
public string Length { get; set; }
}
То есть вам нужно описать какие поля у таблицы и сделать это на этапе компиляции.
Также у вас есть альтернативы.
Во-первых, массив строк можно хранить в специальном поле в формате json.
Во-вторых, можно сериализовать подобным образом: Коллекция примитивов в Entity Framework
Рекомендую почитать какие-нибудь учебники по EF, по вашему вопросу видно, что вы слабо представляете как работает EF.
Вот тут неплохой: https://metanit.com/sharp/entityframework/