отображать дополнительные данные в полях таблицы - структура сущностей 4 - PullRequest
0 голосов
/ 21 апреля 2011

У меня Calls таблица:

Call(id, reason_id, company_id, text)   

У меня Reason таблица:

Reason(id, name)  

У меня Company таблица:

Company(id, name)  

Calls имеет внешний ключ для Reason и Company

Я использую Entity Framework 4 и мне хотелось бы отобразить список вызовов, а для каждого вызова отобразить текст, имя причины и компаниюname.

Что-то вроде внутреннего соединения.

Я добавил таблицы в файл edmx.как я могу получить данные, которые мне нужны?какой объект POCO будет содержать внешние данные (название компании и название причины)?

Ответы [ 2 ]

0 голосов
/ 21 апреля 2011

Возможно, вы можете использовать концепцию ViewModel:

 //Create  CallViewModel contains ReasonName & CompanyName
    public class CallViewModel
    {
        public int id { get; set; }
        public string Text{ get; set; }
        public string ReasonName { get; set; }
        public string CompanyName { get; set; }
    }

public List<CallViewModel> YourMethid()
{
    using (Entities _entities = new Entities())
    {
        var result = (from s in _entities.Call.Include("Reason").Include("Company")
                      select new CallViewModel
                          {
                              id = s.id,
                              Text = s.Text,
                              CompanyName = s.Company.name,
                              ReasonName = s.Reason.name
                          }).ToList();
        return result;
    }
}

====================== // выбрать все данные из_entities Call Table

var result = (из s в _entities.Call.Include ("Reason"). Include ("Company") select s) .ToList ();

// getReasonName первых данных

var ReasonName = result [0] .Reason.ReasonName;

// получить имя компании первых данных

var CompanyName = result [0] .Company.CompanyName;

0 голосов
/ 21 апреля 2011

Попробуйте это:

using (YourEntities ctx = new YourEntities())
{
    //In this example, "Reason" and "Company" are the name of
    //your navigation properties
    return ctx.Calls.Include("Reason").Include("Company").ToList();
}

Это даст вам List<Call>. Таким образом, каждый Call будет иметь Call.Reason.Name или что-то подобное в зависимости от вашей модели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...