У меня есть такая модель,
[Table("ClientAccessories")]
public class ClientAccessory
{
public ClientAccessory()
{
LastModifiedDateTime = DateTime.UtcNow;
}
public string AccessoryId { get; set; }
public Guid ClientReference { get; set; }
public DateTime LastModifiedDateTime { get; set; }
public bool IsActive { get; set; }
public virtual Accessory Accessory { get; set; }
}
, и у меня есть этот код в методе репозитория,
public IEnumerable<ClientAccessory> GetClientAccessories(Guid ClientReference)
{
var _context = new DBContext();
var results = from a in _context.Accessories
join ca in _context.ClientAccessories
on new { AccessoryId = a.Id, ClientReference = new Guid(ClientReference) }
equals new { ca.AccessoryId, ca.ClientReference } into ca_join
from ca in ca_join.DefaultIfEmpty()
where
ca.IsActive == true ||
ca.IsActive == null
select new {};
}
Теперь проблема в том, что я не уверен, как вернуть ClientAccessoryвключение объекта Accessory вместе, хотя это виртуальное свойство.
Также допустимо ли вызывать 2 объекта в одном репозитории или я должен вернуть IQueryable и сделать это в классе обслуживания домена. спасибо.
Я не хочу выравнивать значения следующим образом:
select new {
Id = a.Id,
ClientReference = ca.ClientReference
and so on...
};