0

Проблема в следующем - у меня есть 2 объектов с одной ко-многим:EF 4,3 & CodeFirst: Один-ко-многим навигационных свойств нагрузок как нулям без объекта прокси

public class Schema 
{ 
    [DatabaseGenerated(DatabaseGeneratedOption.None)] 
    public Guid SchemaId { get; set; } 

    public string Name { get; set; } 

    public string Content { get; set; } 

    public string ElementName { get; set; } 

    public List<Element> Elements { get; set; } 
} 

public class Element 
{ 
    [DatabaseGenerated(DatabaseGeneratedOption.None)] 
    public Guid ElementId { get; set; } 

    public Guid SchemaId { get; set; } 

    public string Content { get; set; } 

    public Schema InSchema { get; set; } 
} 

и проекта ссылки на EntityFramework v4 .3 пакет. После хранения некоторых схем со связанными элементами в базе данных я загружаю список схем (например, var schemasList = context.Schemas.ToList()). После этого во всех случаях значение свойства Schema in Elements равно null. Теперь я решаю эту проблему с добавлением динамического прокси для сущностей, но это имеет некоторое плохое влияние на множество сценариев dev (например, сохранение может привести к ошибке «Entity tracking by multiple context»). Благодарим за помощь в решении этой проблемы.

ответ

2

Вы использовали. Включить в запрос?

т.е.

from s in Schema.Include(sc=>sc.Elements) 
select s; 

примечание вам нужно будет

using System.Data.Entity 

использовать включают

+0

необходимо с CodeFirst? – DrAlligieri

+1

@DrAlligieri: Зависит от меня, у меня был один сервер, где мне не нужно было вводить его, а другой - там, где это необходимо было ввести. Требуется прогулка по бизнес-слою. В любом случае это требуется, так как в противном случае вы делаете ленивую загрузку (загружаете только то, что нужно), поэтому теперь вы говорите с помощью Include, что вы должны ** ПРИСОЕДИНЯТЬ ** в таблице Elements (которую можно считать производительностью если вам это не понадобится). –

+0

OK, tnx для ответа. Я знаком с ленивой концепцией загрузки (и не очень нравится);). И еще один вопрос: Включить загружает только объекты sc.Elements (ak List ) (простые элементы ak Element) или перемещаться (если у него есть другие сложные реквизиты для отображения в виде списка). – DrAlligieri

 Смежные вопросы

  • Нет связанных вопросов^_^