У меня есть модель в структуре сущности с родительскими отношениями с дочерними элементами в одной таблице. Это отображение от 0,1 до многих. Теперь у него много свойств, по одному сценарию мне не нужны все эти свойства, просто Id, Name и Children.EF cast для просмотра структуры дерева моделей
public partial class Foo
{
public Foo()
{
this.As = new HashSet<A>();
this.Children = new HashSet<Foo>();
this.Bs = new HashSet<B>();
}
public int FooId { get; set; }
public Nullable<int> ParentId { get; set; }
public string ParentName { get; set; }
public string Name { get; set; }
//... many more
public virtual ICollection<A> As { get; set; }
public virtual ICollection<Foo> Children { get; set; }
public virtual Foo Foo2 { get; set; }
public virtual ICollection<B> Bs { get; set; }
}
Я хочу, чтобы список этих конвертированный в
public class FooModel
{
public FooModel()
{
this.Children = new HashSet<FooModel>();
}
public int FooId { get; set; }
public Nullable<int> ParentId { get; set; }
public string Name { get; set; }
public virtual ICollection<FooModel> Children { get; set; }
public virtual FooModel Foo2 { get; set; }
}
Я делаю, как показано ниже.
db.Foos.Where(p => p.ParentId == null).Cast<FooModel>().ToList();
и получать ошибки
Невозможно привести объект типа 'System.Data.Entity.DynamicProxies.Foo_ALongNoInHexadecimal' к типу 'Namespace.ViewModel.FooModel.
Есть ли способ бросить древовидную структуру для просмотра модели дерева?
Получение нулевого ссылочное исключения в конструкторе –
и System.StackOverflowException»на добавление Condtion для если модели не нулевой –
хорошо, вы должны проверить нулевые объекты в конструкторе, попробуйте удаление Foo2 = новой строки FooModel (myFoo.Foo2) – Overmachine