Я решил это с помощью анонимного выбора. Я не смог выбрать непосредственно в модель по двум причинам: 1. Некоторые из полей (все именованные) не были отображены в поля без установщиков, и 2. Модель была привязана к таблице. Вот рабочий код:
var data = db.OrderRules
.Include(m => m.OrderRuleType)
.Include(m => m.OrderRuleType.Type)
.Include(m => m.OrderRuleType.Category)
// best match fields
.Include(m => m.TicketType)
.Include(m => m.DestTicketType)
.Include(m => m.Shipper)
.Include(m => m.CarrierType)
.Include(m => m.Carrier)
.Include(m => m.DriverGroup)
.Include(m => m.Driver)
.Include(m => m.TruckType)
.Include(m => m.ProductGroup)
.Include(m => m.Destination)
.Include(m => m.Origin)
.Include(m => m.DestState)
.Include(m => m.OriginState)
.Include(m => m.DestRegion)
.Include(m => m.OriginRegion)
.Include(m => m.Producer)
.Where(m => !m.OrderRuleType.Hidden)
.Where(m => m.ID == id || id == 0)
.Select(m => new {
m.ID,
allowRowDeactivate = true,
allowRowEdit = true,
m.EffectiveDate,
m.EndDate,
m.Value,
m.TypeID,
m.OrderRuleType,
m.OrderRuleType.Type,
m.OrderRuleType.Category,
OriginTicketTypeName = m.TicketType.Name ?? BestMatchCore.DEFAULT_LABEL,
DestTicketTypeName = m.DestTicketType.Name ?? BestMatchCore.DEFAULT_LABEL,
ShipperName = m.Shipper.Name ?? BestMatchCore.DEFAULT_LABEL,
CarrierTypeName = m.CarrierType.Name ?? BestMatchCore.DEFAULT_LABEL,
CarrierName = m.Carrier.Name ?? BestMatchCore.DEFAULT_LABEL,
DriverGroupName = m.DriverGroup.Name ?? BestMatchCore.DEFAULT_LABEL,
DriverName = (m.Driver.FirstName + " " + m.Driver.LastName == " ")? BestMatchCore.DEFAULT_LABEL: m.Driver.FirstName + " " + m.Driver.LastName,
TruckTypeName = m.TruckType.Name ?? BestMatchCore.DEFAULT_LABEL,
ProductGroupName = m.ProductGroup.Name ?? BestMatchCore.DEFAULT_LABEL,
DestinationName = m.Destination.Name ?? BestMatchCore.DEFAULT_LABEL,
OriginName = m.Origin.Name ?? BestMatchCore.DEFAULT_LABEL,
DestStateName = m.DestState.Abbreviation ?? BestMatchCore.DEFAULT_LABEL,
OriginStateName = m.OriginState.Abbreviation ?? BestMatchCore.DEFAULT_LABEL,
DestRegionName = m.DestRegion.Name ?? BestMatchCore.DEFAULT_LABEL,
OriginRegionName = m.OriginRegion.Name ?? BestMatchCore.DEFAULT_LABEL,
ProducerName = m.Producer.Name ?? BestMatchCore.DEFAULT_LABEL,
CreateDate = m.CreateDateUTC,
m.CreatedByUser,
LastChangeDate = m.LastChangeDateUTC,
m.LastChangedByUser
});
Это создало запрос, который вернул только те поля, которые я хотел.