Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用SQL从多个表中提取数据并在一个视图中显示_C#_Sql_Asp.net Mvc_Ado.net_Crud - Fatal编程技术网

C# 使用SQL从多个表中提取数据并在一个视图中显示

C# 使用SQL从多个表中提取数据并在一个视图中显示,c#,sql,asp.net-mvc,ado.net,crud,C#,Sql,Asp.net Mvc,Ado.net,Crud,我已经创建了我的应用程序,并使用数据库优先的方法。所以我使用ADO.net实体数据模型将我的数据库添加到项目中,然后以这种方式将控制器添加到项目中,可以说我没有任何模型,我想?但无论如何,我已经添加了控制器,CRUD被自动添加到每个实体中 我的问题是,我想在一个网页上查看多个表中的数据。我可以通过sql实现这一点,但如何使用sql提取所需数据并将其显示在屏幕上。我假设您指的是创建实体模型的EF代码优先方法 如果我是对的,那么使用实体(表映射类)作为视图模型的常见做法会与您的视图冲突 当我第一次构

我已经创建了我的应用程序,并使用数据库优先的方法。所以我使用ADO.net实体数据模型将我的数据库添加到项目中,然后以这种方式将控制器添加到项目中,可以说我没有任何模型,我想?但无论如何,我已经添加了控制器,CRUD被自动添加到每个实体中


我的问题是,我想在一个网页上查看多个表中的数据。我可以通过sql实现这一点,但如何使用sql提取所需数据并将其显示在屏幕上。

我假设您指的是创建实体模型的EF代码优先方法

如果我是对的,那么使用实体(表映射类)作为视图模型的常见做法会与您的视图冲突

当我第一次构建页面时,我经常使用实体作为模型。但正如您所发现的,它们很少是合适的,我经常发现自己正在迁移到更健壮的模型

1) 我建议您在Models目录中创建一个类库。嵌入使多个实体成为类的成员

例如,您可以有一个CustomeActivityModel,它还可以作为客户、销售和订单的成员

class CustomeActivityModel
{
      Customers CustomerList { get; set; }
      Sales SalesList { get; set; }
      Orders OrdersList { get; set; }
}
在控制器中,您将填充它们

   ViewResult Index()
{
   CustomeActivityModel Model = new CustomeActivityModel();
   Model.CustomerList EFContext.Customers;
   Model.SalesList EFContext.Sales;
   Model.OrdersList EFContext.Orders;
   Return View(Model);
}
或者,您也可以使用EF的Linq功能来包括具有关键关系的实体(假设销售具有客户和订单的外键)


我假设您指的是创建实体模型的EF代码优先方法

如果我是对的,那么使用实体(表映射类)作为视图模型的常见做法会与您的视图冲突

当我第一次构建页面时,我经常使用实体作为模型。但正如您所发现的,它们很少是合适的,我经常发现自己正在迁移到更健壮的模型

1) 我建议您在Models目录中创建一个类库。嵌入使多个实体成为类的成员

例如,您可以有一个CustomeActivityModel,它还可以作为客户、销售和订单的成员

class CustomeActivityModel
{
      Customers CustomerList { get; set; }
      Sales SalesList { get; set; }
      Orders OrdersList { get; set; }
}
在控制器中,您将填充它们

   ViewResult Index()
{
   CustomeActivityModel Model = new CustomeActivityModel();
   Model.CustomerList EFContext.Customers;
   Model.SalesList EFContext.Sales;
   Model.OrdersList EFContext.Orders;
   Return View(Model);
}
或者,您也可以使用EF的Linq功能来包括具有关键关系的实体(假设销售具有客户和订单的外键)


以Dave a的答案为基础:

我个人喜欢先用数据库进行这种检索

构建EDMX后,创建一个简单、直接的POCO,模拟您想要返回的内容。一个简单的例子是:

public class ComplexModelFromMultipleTables
{
   List<Car> Cars { get; set; }
   List<Bike> Bikes { get; set; }
   List<Boat> Boats { get; set; }
}
从控制器调用此提供程序,并使用

@model ComplexModelFromMultipleTables

在视图的顶部。

以Dave a的答案为基础:

我个人喜欢先用数据库进行这种检索

构建EDMX后,创建一个简单、直接的POCO,模拟您想要返回的内容。一个简单的例子是:

public class ComplexModelFromMultipleTables
{
   List<Car> Cars { get; set; }
   List<Bike> Bikes { get; set; }
   List<Boat> Boats { get; set; }
}
从控制器调用此提供程序,并使用

@model ComplexModelFromMultipleTables

在您的视图顶部。

这个答案有更好的解释和伪代码。这个问题相当基本,但答案是经过深思熟虑和精心设计的。我希望你经常发帖子。谢谢你的鼓励,戴夫!我非常感激!这个答案有更好的解释和伪代码。这个问题相当基本,但答案是经过深思熟虑和精心设计的。我希望你经常发帖子。谢谢你的鼓励,戴夫!我非常感激!