连接列表和对象然后使用可枚举的c#

时间:2013-10-01 17:35:48

标签: c# linq

我有一个模型类,用于在datatbase中存储信息。然后我创建了一个列表测试。这将列出获取xml数据并将其放入列表中。

所以在我的控制器中,

我有这个linq查询:

function somefunction()
{
    var mov = from m in db.Movies
                          select m;
    List<Movie> items = MyXMLExtract();//this gets xml file from a url, then returns a list<Movie>.
    var thistest = mov.ToList().Concat(items);; //I concatenate the two linq

    return thistest;
}
在我看来,我有这个:

@model IEnumerable<Models.Movie>

但是,此视图中的所有内容都会出错:

  

无法创建“Models.Movie”类型的常量值。在此上下文中仅支持原始类型或枚举类型。

我理解错误,但如何处理呢? 基本上我正在返回一个列表,我正在使用Ienumerable,该怎么办? 我的视图只是一个foreach循环输出字段名称。

电影和项目都使用与电影相同的数据库模型。

下面给出了一个错误:

  

对象引用未设置为对象的实例。

if (!String.IsNullOrEmpty(searchString))
{
    thistest = thistest.Where(s => s.description.Contains(searchString)
                                || s.title.Contains(searchString)
                                || s.location.Contains(searchString));
}

1 个答案:

答案 0 :(得分:1)

LINQ尝试将List项目传递给DB,并在SQL Server端连接它们。

更改mov.Concat(items); to mov.ToList()。Concat(items)在连接之前从SQL中提取数据。