Если все, что вы хотите сделать, это добавить группу людей (за один раз), то, безусловно, достаточно:
namespace DomainModel.Entities
{
public class Product
{
public int ProductID { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public decimal Price { get; set; }
public IEnumerable<Person> People { get; set; }
}
}
Это несколько глупо, потому что вы должны назначать людей за один раз. Вместо этого вы могли бы сделать это фактической изменчивой коллекцией, такой как List, или предоставить метод AddPerson (), чтобы скрыть это (возможно, обрабатывать добавление одного и того же человека более одного раза)
Если это основано на вспомогательной таблице (я предполагаю, что с некоторыми отношениями внешнего ключа между людьми и продуктом, вам следует подумать над тем, чтобы слой доступа к базе данных справился с этим ...
Использование (очень) простого предложения, приведенного выше, без какой-либо базы данных / отображения базы данных будет таким простым:
public Product GetExampleProduct()
{
return new Product() {
ProductID = 1,
Name = "SkeetOMatic",
Description = "your very own Skeet in a box",
Price = Double.PositiveInfinity,
People = new[] { new Person("Joel"), new Person("Jeff") }
};
}
Простое использование подходящих внешних ключей в вашей базе данных и использование дизайнера Linq должно позволить вам заметить эту связь и позволить Linq обрабатывать все эти вопросы. Тогда, если вы попросите людей, связанных с этим продуктом, вы получите их в значительной степени автоматически.