У меня есть 4 объекта. Они выглядят примерно так:Как сопоставить одну сущность со многими объектами в Entity Framework?
public abstract class Entity
{
public Guid Id { get; set; }
public DateTime CreationDate { get; set; }
}
public class Client :
Entity
{
public string Name { get; set; }
// ...
public IList<Note> Notes { get; set; }
}
public class Supplier :
Entity
{
public string Name { get; set; }
// ...
public IList<Note> Notes { get; set; }
}
public class Note :
Entity
{
public Guid EntityId { get; set; } // This points to the Id field of a Client or Supplier
public virtual Entity Entity { get; set; }
public string EntityName { get; set; } // "Client", "Supplier", etc.
}
Теперь, что я хочу, чтобы это создать 3 таблицы, клиент, поставщик, и примечание. Таблица примечаний должна указывать на примечание клиента и поставщика в поле EntityId. Фактически происходит то, что EF добавляет поля Client_ID и Supplier_ID в таблицу примечаний с внешними ключами для каждой соответствующей таблицы. Эффект этого в основном заключается в том, что заметки могут быть созданы только в том случае, если включены как клиент, так и поставщик.
Что мне нужно сделать, чтобы сделать так, как мне нужно?
не automapper то, что вы ищете? – kopelence
Можете ли вы привести пример того, как automapper решит эту проблему? – RichieACC
Как насчет ограничений внешнего ключа? Вам понадобится столбец внешнего ключа в таблице заметок для каждого «родительского» объекта. –