显示额外的数据到表字段-实体框架4

本文关键字:字段 实体 框架 数据 显示 | 更新日期: 2023-09-27 17:50:38

我有Calls表:

Call(id, reason_id, company_id, text)   

我有Reason

Reason(id, name)  

我有Company表:

Company(id, name)  

CallsReasonCompany的外键

我正在使用实体框架4,我想显示呼叫列表,并为每个呼叫显示文本,原因名称和公司名称。

类似于内连接。

我已经将表添加到edmx文件中。我怎样才能得到我需要的数据?哪个POCO对象将保存外部数据(公司名称和原因名称)?

显示额外的数据到表字段-实体框架4

也许你可以使用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调用表中选择所有数据

var result = (from s in _entities.Call.Include("Reason").Include("Company") select s).ToList();

//获取第一个数据的ReasonName

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

//获取第一个数据的CompanyName

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

试试这个:

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或类似的东西,这取决于你的模型。