DNN DAL2 Нормализованные таблицы Отношение один ко многим

У меня есть модуль, который занимается продуктами и опциями. Где продукт может иметь несколько вариантов.

Итак, скажем, у меня есть класс poco (частичная информация здесь)

class Product
{
    public int ProductId { get; set; }
    public string ProductName { get; set; }

Затем у меня есть класс для вариантов...

public class Option
{
    public int OptionId { get; set; }
    public string OptionName { get; set; }
    public int OptionImage { get; set; }

Затем у меня есть таблица в моей базе данных, которая отображает их вместе. Какова стратегия, скажем, когда я возвращаю два в представление, но как мне получить класс poco, который будет обновлять таблицу сопоставления? Потому что, например, у меня может быть класс poco

class Mappings
{
    public int MappingId { get; set; }
    public int ProductId { get; set; }
    public int OptionId { get; set; }

Но скажем, мое представление возвращает фактическое имя продукта и имя параметра, которых нет в классе/таблице сопоставлений. Затем я просто создаю класс продукта с идентификатором, который я получаю в классе Mappings, и делаю еще один вызов db для создания имени, или я заставляю класс сопоставлений обрабатывать имя? Просто пытаюсь посмотреть, как другие разработчики справились с этим.


person whreed    schedule 22.08.2014    source источник


Ответы (2)


Я обнаружил, что если я создам представление, в котором мои идентификаторы сопоставлены с соответствующими им именованными значениями, я могу затем настроить свой класс poco как имеющий значения [ReadOnlyColumn], и это решает мою проблему для обновлений poco. Надеюсь, это поможет кому-то, в противном случае я отвечу, если вам нужна помощь.

мой класс сопоставлений будет...

public int MappingId { get; set; }
public int CategoryId { get; set; }
public int OptionId { get; set; }
[ReadOnlyColumn]
public string CategoryName { get; set; }
person whreed    schedule 25.08.2014
comment
В моем случае свойство ReadOnlyColumn заставляет значение столбца возвращать значение null, используя DNN 9.4. - person Mosta; 17.11.2019

На DNN9+ у меня не было возможности заставить его работать, кроме как с помощью столбца с атрибутом «IgnoreColumn» и загрузки значения из другого репозитория сущностей (при необходимости цикл)

примечание: попробовал столбец только для чтения, но он не загружает внешний столбец (значение всегда равно нулю)

person Mosta    schedule 17.11.2019