Отношение «один к одному» не работает в рамках Nop Commerce Entity.

Я работаю с nop commerce 2.30. Я создаю таблицу в базе данных nopCommerce и устанавливаю

Отношение 1:1 в другой таблице.

мой стол - Повестка дня. Пожалуйста, смотрите структуру моей таблицы.

введите здесь описание изображения

Пожалуйста, смотрите схему базы данных.

введите здесь описание изображения

Класс BaseEntity

 /// <summary>
/// Base class for entities
/// </summary>
public abstract partial class BaseEntity
{
    /// <summary>
    /// Gets or sets the entity identifier
    /// </summary>
    public virtual int Id { get; set; }

Пожалуйста, смотрите мою модель. Я добавляю новый идентификатор свойства в свой класс Agenda. Но это

показано предупреждающее сообщение, что это свойство уже существует, это базовый класс.

пространство имен Nop.Core.Domain.Agendas

{

public partial class Agenda : BaseEntity

{
    public virtual int Id { get; set; }

    public virtual string Name { get; set; }

    public virtual List<Days> Days { get; set; }
}

}

Отображение

`открытый частичный класс AgendaMap : EntityTypeConfiguration

{

    public AgendaMap()
    {

        this.ToTable("Agenda");

        this.HasKey(a => a.Id);
    }
}`

Затем я пытаюсь вставить в таблицу повестки дня.

введите здесь описание изображения

Я получаю это сообщение об ошибке

введите здесь описание изображения

Пожалуйста помоги.


person Ragesh S    schedule 17.01.2013    source источник
comment
Вы проверили через отладку, что идентификатор конференции не равен нулю?   -  person Martin Overgaard    schedule 17.01.2013
comment
Нет, это не ноль. Я даю идентификатор конференции 52. Но, пожалуйста, посмотрите примерный класс повестки дня. Свойство id не определено. Свойство Id получается из класса BaseEntity. не в модели повестки дня. Я пытаюсь вставить тот же идентификатор таблицы продуктов в идентификатор повестки дня.   -  person Ragesh S    schedule 17.01.2013


Ответы (1)


Судя по вашей диаграмме, у вас нет ключа в дизайне таблицы Agenda, тогда как вы установили его как ключ в своем коде. Попробуйте следующее:

  1. В дизайне таблицы БД установите Id в качестве первичного ключа, убедившись, что он настроен на автоинкремент.
  2. Добавьте новое поле с именем ProductId, и это ключ, который должен быть связан с полем Id таблицы Product.
  3. Обновите свой код соответствующим образом. :)
person wooncherk    schedule 20.01.2013
comment
Спасибо за ваш ценный ответ. Но я хочу отношения один к одному - person Ragesh S; 22.01.2013
comment
Не определяйте Id в своем классе Agenda, он уже получает его из BaseEntity. Если вы хотите связать его с продуктом, вам следует использовать ProductId в дополнение к собственному идентификатору Agenda. Все равно будет 1-1. - person AndyMcKenna; 24.01.2013