#aspnet_mvc #sql_server
Господа, просветите пожалуйста. Можно ли в БД (MSSQL) хранить коллекцию типа List. Получается у меня такая история, есть таблица бд, в которой столбики Name, Type, Orders. В последнем должна быть коллекция со всеми заказами для каждого конкретного Name. Можно ли как-то передать эту коллекцию в БД, если да, то как это можно сделать. Спасибо
Ответы
Ответ 1
Да, можно. Обычно это делается через связанную таблицу. Если речь идет о Entity Framework - то минимальный код очень простой: достаточно добавить саму коллекцию к родительской записи и задать первичный ключ для дочерней записи. Основная сложность - в удалении дочерних записей. Их нельзя просто удалять из коллекции - их надо удалить из контекста. Ну а дальше надо читать по EF - чем плоха отложенная загрузка, как загружать дочерние записи вместе с родительской и т.п.Ответ 2
Так делать не стоит. Правильно будет для MyClass создать отдельную таблицу. То есть в вашем случае таблицу Orders, для каждой строки которой будет храниться ссылка на строку в первой таблице. И сохранять отдельно записи в первую таблицу и в таблицу Orders. Если вы используете Entity Framework: Code First, тогда вообще не стоит беспокоиться - EF сам сгенерирует вторую таблицу и ссылки на первую.Ответ 3
а может лучше сделать иначе? например как то так public class Table1 { public int Id {get;set;} piblic string Name {get;set;} public int TypeId {get;set;}///ссылка на справочник public int OrderId {get;set;} public virtual Type Types {get;set;} public virtual ICollectionOrders {get;set;} } public class Type { public int Id {get;set;} public string TypeName {get;set;} } public class Order { public int Id {get;set;} public string Name {get;set;} }
Комментариев нет:
Отправить комментарий