Сущность уже участвует в другом отношении, Entity Framework CodeOnly - PullRequest
0 голосов
/ 02 сентября 2010

У меня есть два объекта ... и если я скомпилирую программу с любым из них, она работает нормально, но когда они оба существуют в одной программе, я получаю исключение ...

"Объекты в ObjectContext.UnitSet участвуют в отношении" Sheet_Statistics ". Найдено 0 связанных" Sheet ". Ожидается 1" Sheet "."

class Unit
{
 public int Id;
 public string Name;
}
class Template
{
 public int Id;
 public virtual ICollection<Unit> Units
}

class Sheet
{
 public int Id;
 public virtual ICollection<Unit> Units
}

Затем их конфигурации ..

TemplateConfiguration: EntityConfiguration // ....

        //// map the collection entity
        HasMany(k => k.Units).WithRequired()
            .Map("template.units",
                (template, unit) => new
                {
                    Template = template.Id,
                    Unit = unit.Id
                });

SheetConfiguration: EntityConfiguration // ....

        //// map the collection entity
        HasMany(k => k.Units).WithRequired()
            .Map("sheet.units",
                (sheet, unit) => new
                {
                    Sheet = sheet.Id,
                    Unit = unit.Id
                });

UnitConfiguration : EntityConfiguration<Unit>
// 
            // Initialize the Primary Key
            HasKey(k => k.Id);
            // Initialize that the Key Increments as an Identity
            Property(k => k.Id).IsIdentity();


var templates = new List<Template>
                {
                    new Template
                    {
                        Name = // ..,
                        Units = new List<Unit>
                        {
                            new Unit
                            {
                                // ...
                            }
                        }
                    }
                };
                templates.ForEach(x =>
                {
                    context.Templates.Add(x);
                });
                context.SaveChanges(); // <-- Exception Happens Here, I never even get to try to add Sheets.

1 Ответ

2 голосов
/ 02 сентября 2010

Я пытаюсь это сделать, потому что, не видя всего вашего кода, я не могу решить гораздо больше. Я думаю, что ваша проблема в том, что вы создаете Unit s, но не устанавливаете какое-то свойство Sheet (вам необходимо предоставить весь код вашей сущности / конфигурации). Вам нужно создать Sheet и Unit оба , прежде чем вы сможете сохранить Unit или Sheet, так как они имеют обязательную ссылку (отсюда и полученная ошибка). Если вы предоставите больше кода, я смогу уточнить свой ответ лучше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...