【问题标题】:How to select specific columns in Entity Framework in ASP.NET WebForms?如何在 ASP.NET WebForms 的实体框架中选择特定列?
【发布时间】:2016-04-16 08:30:45
【问题描述】:

我只想从 ASP.NET 实体框架中的 SQL Server 数据库中选择特定列,例如用户名、消息和主题。但是我的程序会返回表 emailtable 中的所有列。

这是我的代码:

kicsEntities db = new kicsEntities();

protected void Page_Load(object sender, EventArgs e)
{
    emailtable et = new emailtable();

    string var = Session["username"].ToString();

    GridView1.DataSource = db.emailtables.Where(em => em.receiver == var).ToList(); 
    GridView1.DataBind();
}

【问题讨论】:

  • 您需要创建一个具有所需属性的 ViewModel 类,然后使用 .Select(x=> new Vm(){...}).ToList() 继续查询

标签: c# asp.net webforms entity-framework-6


【解决方案1】:

您可以使用投影。例如,创建一个名为 MyClass 的视图模型(c# 类)并从数据库对象中声明您需要的属性。

public class MyClass
{
    public string Username { get; set; }
    public string Message { get; set; }
    public string Subject { get; set; }
}

现在使用 Linq,您可以只从数据库表中请求您需要的属性

db.TableName.Select(m => new MyClass 
{
    Username = m.Username,
    Message = m.Message,
    Subject = m.Subject
});

您现在可以将返回的集合绑定为您的 gridview 的数据源,并具有强类型控件的额外好处。

【讨论】:

    【解决方案2】:

    您可以向您的数据库模型添加一个视图,并让它只包含您想要检索的那些列。如果您的方法是代码优先,您可以按照this SO post 中的说明添加/映射视图。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-23
      • 1970-01-01
      • 2018-02-03
      • 2013-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-02
      相关资源
      最近更新 更多