У меня есть таблица данных, которая используется для 2 классов (категория и подкатегория)
В структуре EF edmx позволяет нам установить поле ClassName, и объект будет создан как этот класс.
Допустим, что таблица данных имеет вид
CategoryTable: Id, CategoryId, Name, et c ...
[Table("Category")]
public partial class Category
{
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<Subcategory> Subcategories { get; set; }
}
[Table("Category")]
public partial class Subcategory
{
public int Id { get; set; }
public string Name { get; set; }
public Nullable<int> CategoryId { get; set; }
public virtual Category Category { get; set; }
}
В контексте class
modelBuilder.Entity<Category>(entity =>
{
...
entity.HasMany(c => c.CategoryClassifications).WithOne(c => c.Category);
});
При загрузке категорий мне нужны только те, у которых в базе данных не установлен CategoryId. При загрузке подкатегорий мне нужны только те, у которых установлен CategoryId.
Как мне создать связь между категорию (одна) в подкатегории (многие)? Я пробовал использовать соглашение и API-интерфейс Fluant, но всегда получаю сообщение об ошибке: «Невозможно использовать таблицу« Категория »для типа сущности« CategoryClassification », поскольку она используется для типа сущности« Категория »и между их первичными ключами нет связи . '"
Можно ли это сделать в ядре EF. net? Или мне нужно указать условия при загрузке списков?