Если вы хотите смоделировать его с точки зрения моделирования EF/DB, вы можете сделать 2 вещи (очень простые)
- Standard один ко многим отношений между строками и столбцами.
- Одна строка с столбцом id и values, где столбец значений - только список, разделенный запятыми.
В примере ниже DynamicData
и DynamicDataValue
являются примером 1-многих отношениях и DynamicData2
это разделенный запятыми список
EF
Контекст
public class Context : DbContext
{
public Context()
: base("35213027DatatableFromArraylist"){}
public DbSet<DynamicData> DynamicDatas { get; set; }
public DbSet<DynamicData2> DynamicData2s { get; set; }
}
1-многие
public class DynamicData
{
public int Id { get; set; }
public virtual ICollection<DynamicDataValue> Values { get; set; }
}
public class DynamicDataValue
{
public int Id { get; set; }
public string Value { get; set; }
}
Comma отделено
public class DynamicData2
{
public int Id { get; set; }
public string Values { get; set; }
}
Сохранение и чтение
static void Main(string[] args)
{
//one-many
using (var context = new Context())
{
var values = new List<DynamicDataValue>();
for (int i = 0; i < 11; i++)
{
values.Add(new DynamicDataValue { Value = string.Format("Value{0}", i) });
}
context.DynamicDatas.Add(new DynamicData { Values = values });
context.SaveChanges();
var query =
context.DynamicDatas.Select(
data => new { data.Id, values = data.Values.Select(value => value.Value) }).ToList();
foreach (var item in query)
{
var strings = item.values.Aggregate((s, s1) => string.Format("{0},{1}", s, s1));
Console.WriteLine("{0} - {1}", item.Id, strings);
}
}
Console.ReadLine();
//comma seperated
using (var context = new Context())
{
var values = new List<string> { "value1", "value2", "value3" };
context.DynamicData2s.Add(new DynamicData2 { Values = values.Aggregate((s, s1) => string.Format("{0},{1}", s, s1)) });
context.SaveChanges();
var data = context.DynamicData2s.ToList();
foreach (var dynamicData2 in data)
{
Console.WriteLine("{0}-{1}", dynamicData2.Id, dynamicData2.Values);
}
}
}
сделать поиск Google по следующим 'из массива datatable' и вместо того, чтобы делать это с массивом [] сделать это для Список или список это на самом деле не так сложно, особенно если вы понимаете циклы –
MethodMan
Эй, спасибо за повтор .. но как мне реализовать это с помощью сущности framework? –