powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Хранение сложных объектов в базе данных и преобразование к типу при извлечении
3 сообщений из 3, страница 1 из 1
Хранение сложных объектов в базе данных и преобразование к типу при извлечении
    #39222974
AspUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день! Подскажите как можно построить таблицу констант которая сможет хранить разные значения ?
пытаюсь кодом ниже , но Значение в базу записывается NULL
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
CREATE TABLE [dbo].[Constants] (
    [ConstantID]    INT             IDENTITY (1, 1) NOT NULL,
    [Идентификатор] NVARCHAR (50)   NOT NULL,
    [Наименование]  NVARCHAR (100)  NOT NULL,
    [Тип]           NVARCHAR (50)   NULL,
    [Значение]      SQL_VARIANT     NULL,
    [Описание]      NVARCHAR (1000) NULL,
    PRIMARY KEY CLUSTERED ([Идентификатор] ASC)
);


C#
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
  public class Constant
    {
        [Key]
        public string Идентификатор { get; set; }
        public string Наименование { get; set; }
        public string Тип { get; set; }
        public object Значение { get; set; }
        public string Описание { get; set; }
    }



попытка использования:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
           ....
            Constant cons = repository.Constants.Where(o => o.Идентификатор == "test").FirstOrDefault();
            Product prod;

            if (cons != null)
            {
                //так же как сдесь преобразовать к типу который хранится строкой в cons.Тип ?
                prod = (Product)cons.Значение;
            }
            else
            {
                prod = repository.Products.FirstOrDefault();
                cons = new Constant();
                cons.Идентификатор = "test";
                cons.Наименование = "testing";
                cons.Тип = prod.GetType().ToString();
                cons.Значение = prod;

                repository.SaveConstant(cons);//Запись в базу

            }

    ....
...
Рейтинг: 0 / 0
Хранение сложных объектов в базе данных и преобразование к типу при извлечении
    #39223062
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AspUser,


Вы вообще читали, что такое sql_variant?
https://msdn.microsoft.com/en-us/library/ms173829.aspx
...
Рейтинг: 0 / 0
Хранение сложных объектов в базе данных и преобразование к типу при извлечении
    #39223063
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну а по теме вопроса: например серилизовать и хранить как varbinary
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Хранение сложных объектов в базе данных и преобразование к типу при извлечении
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]