如何从联接的实体(表)创建列表类型

本文关键字:创建 列表 类型 实体 | 更新日期: 2023-09-27 18:32:56

我是实体框架的新手。这是我的简单问题。

我有一个自动映射到 ADO .NET 实体数据模式的 SQL 数据库,我编写了一个函数

public List<table1> GetTable1()    
{
  return ( from t in context.table1 select t).ToList();
}

然后我附加数据:

List<table> list1 = GetTable1();
GridView1.DataSource = list1;

但是当我想在选择语句中使用连接的表1和表2时,我不知道要使用哪种类型的列表。

函数应返回哪种类型,以便我可以将其附加到我的 GridView?我现在唯一的解决方案是在数据库上创建视图,然后连接这两个表,然后更新实体模型,但这可能不是很优雅。

感谢您的帮助:)

如何从联接的实体(表)创建列表类型

这与这个问题非常相似: 如何使用 c# linq 在 2 个不同的表中获取 2 个不同的值

您需要创建一个新类,该类可以封装您想要返回的结果。这样,您就可以从数据访问层返回类型。

在绑定数据源的方法中使用Anonimous Type

var list1 = (from t in context.table1 select new { ColumnFromTable1 = "whatever", FromOtherTable = "other" }).ToList();
GridView1.DataSource = list1;

当然,你需要知道如何连接表,这里的关键点是:

new { ColumnFromTable1 = "whatever", FromOtherTable = "other" }