Мне нужна одна таблица собственных ссылок, использующая EF (версия 6.0) в mysql (версия 5.7.20).
Таблица MySQL:
Create table Category
id int(11) Primary Key,
name varchar(50),
ParentId int(11) Default Null,
PRIMARY KEY (`id`),
KEY`Parent_Key` (`ParentId`),
CONSTRAINT`Parent_Key` FOREIGN KEY (`ParentId`) REFERENCES`Category` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION;
КОД EF:
public class Category
{
public int Id {get; set;}
public string Description {get; set;}
public int? ParentId {get; set;}
public virtual Category Parent {get; set;}
public virtual ICollection<Category> Children {get; set;}
};
EF ModelConfiguration
CategoryConfiguration()
{
this.HasKey(e => new {e.id})
this.Property(e => e.id)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
this.HasOptional(e => e.Parent) .WithMany(e => Children) .HasForeignKey(e => new {e.id, e.ParentId); }
Это код запуска скелета, который выполняется без ошибок.проблема в том, когда я получаю категорию по linq _db.Categories;свойство Parent и список Children всегда имеют значение null, даже если я добавлю предложение include.
PS: ParentId - это значение idCategory, если установить категорию в качестве родительской категории.
Кто-нибудь подскажет мнечто не так в моем коде и конфиге?Или это только можно получить в SQLServer не может получить работу в MySQL.