Установка свойства DTO на нулевое значение не дает результатов

Учитывая следующий класс DTO:

public class DistrictDetailDTO
{
    public DistrictDetailDTO()
    {

    }

    public int Id { get; set; }
    public string CountyFP { get; set; }
    public long? EstStudentPop { get; set; }
    public string Name { get; set; }
    public short? Ranking { get; set; }
    public string RANumber { get; set; }
    public long? SchoolCount { get; set; }        
    public string Coop { get; set; }
    public string County { get; set; }
    public virtual DirectorDTO Director { get; set; }
    public virtual AddressDTO Address { get; set; }
}

Следующий запрос LINQ не возвращает никаких результатов, если свойство района Coop имеет значение null...

var district = from districts in _ctx.District
                        where districts.Id == id
                        select new DistrictDetailDTO
                        {
                            Id = districts.Id,
                            CountyFP = districts.County.FIPSCode,
                            EstStudentPop = districts.EstStudentPop,
                            Name = districts.Name,
                            Ranking = districts.Ranking,
                            RANumber = districts.RANumber,
                            SchoolCount = districts.SchoolCount,
                            Address = new AddressDTO {
                                Line1 = districts.Address.Line1,
                                Line2 = districts.Address.Line2,
                                City = districts.Address.City,
                                State = districts.Address.State,
                                Zipcode = districts.Address.Zipcode
                            },
                            Coop = (districts.Coop==null) ? "None" : districts.Coop.Name,
                            County = districts.County.Name,
                            Director = new DirectorDTO {
                                Email = districts.Director.Email,
                                ImgUrl = districts.Director.ImgUrl,
                                Name = districts.Director.Name,
                                Phone = districts.Director.Phone
                            }
                        };

Если я удалю свойство Coop из DTO и запрос, который он возвращает, как следует... что я могу сделать, чтобы исправить это? Условный ?: не работает.


person mkelley82    schedule 23.10.2015    source источник
comment
Вы пытались изучить SQL, сгенерированный EF? Бьюсь об заклад, вы найдете больше деталей в нем.   -  person rnort    schedule 23.10.2015
comment
Пожалуйста, покажите сопоставление связи между District и Coop.   -  person Gert Arnold    schedule 23.10.2015
comment
Из вашего кода where districts.Id == id результат зависит от Id, а не от Coop. Вы уверены, что запрос не возвращает результат по каким-то другим причинам?   -  person Arghya C    schedule 23.10.2015
comment
Coop — это навигационное свойство сущности/модели District.... из класса сущности District: [ForeignKey(CoopId)] [InverseProperty(District)] public virtual Coop Coop { get; установлен; } --- Я также должен отметить, что не все районы имеют Coop, связанный с ними, и в этом случае CoopId (int?) и сам Coop должны быть нулевыми.   -  person mkelley82    schedule 23.10.2015
comment
Вы действительно используете бета-версию EF7?   -  person Bradford Dillon    schedule 24.10.2015
comment
Да, я использую ef7 beta-8.   -  person mkelley82    schedule 24.10.2015
comment
Возможный дубликат Как работать с коллекциями   -  person natemcmaster    schedule 27.10.2015