2013-05-15 4 views
1

У меня действительно странная проблема, и я не могу найти ответ на Google.Code First Empty Navigation Property

настоящее время у меня следующий код Первая/DB структуры:

public class Prospect { 

    [Key] 
    public int ProspectId { get; set; } 
    public int ProspectCompanyId { get; set; } 
    public int? ImportUserId { get; set; } 
    public int? ProspectUserId { get; set; } 
    public int? SalesUserId { get; set; } 
    public int? CampaignId { get; set; } 

    [ForeignKey("CampaignId")] 
    public virtual ICollection<CampaignEvent> CampaignEvents { get; set; } 

    [ForeignKey("CampaignId")] 
    public virtual Campaign Campaign { get; set; } 
} 

public class CampaignEvent 
{ 
    [Key] 
    public int CampaignEventId { get; set; } 
    public int CampaignId { get; set; } 
    public int UserId { get; set; } 
    public string ActionType { get; set; } 
    public string ActionSubject { get; set; } 
    public string ActionTemplate { get; set; } 
} 

Проблема заключается в том, что, когда я пытаюсь вернуть запрос типа:

var prospects = db.Prospects.Include("CampaignEvents"); 

prospects.First().CampaignEvents пуст - когда он должен заполняться записями.

Я даже взял SQL, сгенерированный платформой Entity Framework, и выполнил его с успешным возвратом событий перспективы и campagin непосредственно в базе данных.

Я в недоумении, что делать - очень странно, я не получаю ошибок, просто пустую коллекцию.

Пожалуйста, дайте мне знать, если вам нужны дополнительные данные!

+0

банальный вопрос, но вы уверены, что у вас есть данные? – cadrell0

+0

Да, сэр, на 100% положительный, я взял запрос sql, который был сгенерирован EF, и запустил его в моем анализаторе запросов, и он возвратил данные (включая события кампании) без проблем. thats настолько weird – 99823

+0

'null' или пустая коллекция? Ниже ответа Дамита вы написали «null», в своем вопросе вы пишете «пустую коллекцию». Это большая разница, потому что «включенная» коллекция никогда не должна быть «нулевой», даже без данных в БД. – Slauma

ответ

0

попробовать с

var prospects = db.Prospects.Include("CampaignEvents"); 

var value = prospects.FirstOrDefault(p=>p.CampaignEvents.Any()); 
+0

Я пробовал это, и он вернул нуль - его странный странный человек. Я не могу за всю жизнь понять, почему Entity Framework не загружает эту коллекцию с данными, которые явно вытаскивают из базы данных. – 99823