Совсем недавно начал разбираться в WCF.
Есть две модели
[DataContract]
public class Telephone
{
[DataMember]
public int TelephoneId { get; set; }
[DataMember]
public int Number { get; set; }
[DataMember]
public int ContactId { get; set; }
[DataMember]
public Contact Contact { get; set; }
}
[DataContract]
public class Contact
{
[DataMember]
public int ContactId { get; set; }
[DataMember]
public string Name { get; set; }
[DataMember]
public string Address { get; set; }
[DataMember]
public ICollection<Telephone> Telephone { get; set; }
}
Использую их для EF и WCF.
public class ContactsContext:DbContext
{
public DbSet<Contact> Contacts { get; set; }
public DbSet<Telephone> Telephones { get; set; }
}
Реализация сервиса
public class ServiceContacts : IServiceContacts
{
ContactsContext contactContext;
public IQueryable<Contact> GetAllContact()
{
contactContext = new ContactsContext();
var contacts = contactContext.Contacts.Where(m => m.ContactId > -1);
return contacts;
}
}
Пытаюсь вызвать этот метод в контроллере
public ActionResult Index()
{
var service = new ServiceReference1.ServiceContactsClient();
var contacts=service.GetAllContact();
return View(contacts);
}
И каким-то неведомым для меня образом GetAllContact() возвращает ServiceReference1.Contact[], а не IQueryable. С чем это связано и как мне вывести данные из зависимой таблицы (Telephones)?