Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.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
Asp.net mvc ADO.Net EF、SQL和LINQ ViewData_Asp.net Mvc_Entity Framework_Linq To Entities - Fatal编程技术网

Asp.net mvc ADO.Net EF、SQL和LINQ ViewData

Asp.net mvc ADO.Net EF、SQL和LINQ ViewData,asp.net-mvc,entity-framework,linq-to-entities,Asp.net Mvc,Entity Framework,Linq To Entities,我有以下代码: ViewData.Model = from m in dataModel.Items where m.Loaned == cust.MembershipID && m.MediaItem1.Type != null

我有以下代码:

ViewData.Model = from m in dataModel.Items
                             where m.Loaned == cust.MembershipID
                                   &&
                                   m.MediaItem1.Type != null

                             select new Temp
                                        {
                                           Rating = m.Library.ItemRating.Rating,
                                           Title = m.MediaItem1.Title
                                         };

我使用Temp作为强类型创建了一个视图。这很好地工作,并显示所有的标题和评级,因为它应该

我现在想要实现的是:我还有另一种类型的项目,我也想查询,查询看起来与上面的非常相似,它也会返回标题和评级,但它仍然被归类为不同的“项目”类别。我如何实现这一点,以便它将两个查询都发送到视图-如果这样做有意义的话

谢谢。

如果不同类型的项目是EF模型中设置的不同实体,它不是从项目继承的,您可以简单地使用union:

ViewData.Model = (from m in dataModel.Items
              where m.Loaned == cust.MembershipID &&
                               m.MediaItem1.Type != null
              select new Temp
                  {
                      Rating = m.Library.ItemRating.Rating,
                      Title = m.MediaItem1.Title
                  })
             .Contact(
              from i in dataModel.DifferentItems
              where ...
              select new Temp
                  {
                      ...
                  });

但是,如果您在数据库中对继承进行了建模,您仍然可以查询项,并将获得有关所有派生实体的信息。

这是因为我现在可以在一个Viewdata中获取所有项,但是我无法区分哪些项可能是电影,例如,或者哪一个是游戏?我有一个标题和评级的列表。我如何才能识别这两种不同的类型?谢谢。在这种情况下,您必须将specil属性添加到Temp中,并根据加载实体的类型填充它。
ViewData.Model = (from m in dataModel.Items
              where m.Loaned == cust.MembershipID &&
                               m.MediaItem1.Type != null
              select new Temp
                  {
                      Rating = m.Library.ItemRating.Rating,
                      Title = m.MediaItem1.Title
                  })
             .Contact(
              from i in dataModel.DifferentItems
              where ...
              select new Temp
                  {
                      ...
                  });