У меня есть относительно сложные отношения, которые мне нужно настроить между объектом User и множеством таблиц поиска. Объект пользователя Ваш пробег пользовательской модели мельницы:Как создать сложное много-много отношений в сущности Framework 4 сначала код
public class Youth : IAuditInfo
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public Guid YouthGuid { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public Address Address { get; set; }
public DateTime CreatedDate { get; set; }
public DateTime ModifiedDate { get; set; }
public string ImageName { get; set; }
[ForeignKey("FkYouthId")]
public ICollection<User> Parents { get; set; }
public CubPack Pack { get; set; }
public virtual ICollection<RequirementsLog> RequirementsLogs { get; set; }
public Youth()
{
Parents = new List<User>();
}
}
справочные таблицы, где это становится сложно, и я не могу понять, по пути наименьшего сложности связывания их вместе. Для поисков он представляет собой серию таблиц, начиная с одной таблицы «мастер», который скатывается иерархически требованиям и подразделам требованиям, например:
Мастер:
public class BearTrail
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<BearTrailRequiredBadge> BearTrailRequiredBadges { get; set; }
public virtual ICollection<BearTrailElectiveBadge> BearTrailElectivedBadges { get; set; }
}
Необходимые Значки:
public class BearTrailRequiredBadge
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public string Name { get; set; }
public int Number { get; set; }
public string Description { get; set; }
public virtual ICollection<BearTrailRequiredBadgeSubRequirement> BearTrailRequiredBadgeSubRequirements { get; set; }
}
Обязательный знак требование к югу:
public class BearTrailRequiredBadgeSubRequirement
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public string Number { get; set; }
public string Text { get; set; }
public bool Required { get; set; }
}
Это один набор из поиска s, есть около четырех вложенных классов, подобных этому, и некоторые из таблиц. Всего таблицы поиска составляют около 16, дают или принимают.
Я изначально думал при использовании моей модели RequirementLog, чтобы связать его:
public class RequirementsLog
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public virtual ICollection<Youth> Youth { get; set; }
public BearTrail BearTrailRequirements { get; set; }
public TigerTrail TigerTrailRequirements { get; set; }
public WolfTrail WolfTrailRequirements { get; set; }
public WebelosTrail WebelosTrailRequirements { get; set; }
public WebelosArrowOfLight WebelosArrowOfLightRequirements { get; set; }
}
Так что есть многие ко многим между RequirementsLog и молодежью. В таблице, созданной из RequirementsLog, есть один столбец PK (ID) и столбцы FK для каждого свойства. Многие из многих таблиц, созданных из этого (RequirementsLogYouths), имеют две PK (RequirementsLogId и YouthId).
Я собираюсь сделать это правильно? Конечная цель состоит в том, чтобы иметь 16 или около того сервер таблиц как список списков различных требований и иметь другую таблицу (ы), чтобы отслеживать прогресс определенных юношей в соответствии с требованиями. Мне нелегко визуализировать некоторые из этих материалов DBA, поэтому любой вход был бы весьма полезен.
Вопрос по этому вопросу, если бы вы могли разработать немного. Я знаком с быстрым api и делаю выше, чтобы дать таблицу m2m между двумя типами сущностей. Итак, с этим предлагаемым решением, могу ли я сделать это для 4-6 «основных» таблиц, которые у меня есть, или для всех 16 таблиц? Итак, повторите фрагмент выше для каждой привязки, в которой я нуждаюсь? Как это дает мне способ иметь столбцы для маркировки элементов как завершенных и т. Д.? – ledgeJumper
Как вы описали, вам нужно многого для многих только для RequirementsLog и Youth, как вы сами сказали. Все ваши «значки» ваших значков должны иметь fk для своих родителей. RequirementsLog будет поддерживать ссылки на поиски для конкретной молодежи. Теперь я не понимаю, почему у вас много молодежи для одного требованияLog? – dblk1965