Я пытаюсь предварительно извлечь некоторые данные внешнего ключа, используя запрос linq. Вот быстрый пример, объясняющий мою проблему:
var results = (from c in _customers
from ct in _customerTypes
where c.TypeId == ct.TypeId
select new Customer
{
CustomerId = c.CustomerId,
Name = c.Name,
TypeId = c.TypeId,
TypeName = ct.TypeName, <-- Trying to Prefetch this
}).ToList();
Класс Customer выглядит следующим образом:
[Table(Name = "Customers")]
public class Customer
{
[Column(Name = "CustomerId", IsPrimaryKey = true, IsDbGenerated = true, AutoSync = AutoSync.OnInsert)]
public int CustomerId { get; set; }
[Column(Name = "Name")]
public string Name { get; set; }
[Column(Name = "TypeId")]
public int TypeId { get; set;}
public string TypeName { get; set; }
public Confession (){}
}
Однако LINQ не позволит вам сделать это, выдав исключение NotSupportedException с «Явное построение типа объекта« Клиент »в запросе не допускается».
Я явно неправильно подхожу к этому. Любые указатели в правильном направлении были бы наиболее полезны.