Я новичок в базах данных, и я не уверен, как справиться с этой ситуацией. У меня есть 3 таблицы соединены таким образом:Создание таблицы во время выполнения
Session <- 1:1 -> Document <- 1:1 -> DocumentData
Так в основном всегда есть 1 Session
, что имеет Document
который имеет DocumentData
.
Я хочу, чтобы иметь возможность добавлять различные типы и столбцы данных DocumentData
, так, например, я могу иметь DocumentData
с 3 колонки типа DateTime
, Int32
, Int32
. А затем еще один стол с 5 колонками типов Datetime
, double
, Int32
, Int32
, Int32
. В основном то, что я буду за это иметь что-то вроде этого в моем коде:
using(var unit = new UnitOfWork(new SessionContext()))
{
var data = unit.Sessions.GetCurrent().Document.DocumentData;
var row = data.Column[0].Rows[5]... etc.
}
Это происходит потому, что DocumentData
генерируется из CSV, указанного пользователем, поэтому каждый DocumentData
состоит из различных столбцов.
EDIT: Я хочу знать, как создать таблицу во время выполнения и назначить любые столбцы, которые мне нужны. Поэтому я хочу иметь возможность сделать что-то вроде:
var doc = new Document();
session.Document = doc;
doc.Columns.Add(new Column() {Rows = rows});
doc.Columns.Add(new Column() {Rows = rows2});
doc.SaveChanges();
, а затем второй стол с разными колонками.
EDIT2: Чтобы сделать это более ясно, что я хочу, чтобы преобразовать это:
public class DocumentData {
public List<DocumentColumn> Columns { get; set; }
}
public class DocumentColumn {
public string ColumnName { get; set; }
public List<object> Rows { get; set; }
}
в ADO.NET лиц, так что я могу сохранить их в базу данных.
Я действительно пытаюсь найти здесь вопрос. В чем дело? –
Я обновил свой вопрос. – FCin