System.Data.Entity未按预期运行MVC实体框架

时间:2012-12-12 11:24:49

标签: c# entity-framework

我下面的代码片段在“i.tPersons.Any”处生成错误:

'WhatWorks.Models.tPerson'不包含'Any'的定义,并且没有扩展方法'Any'接受类型为'WhatWorks.Models.tPerson'的第一个参数可以找到(你是否缺少using指令或汇编参考?)

'Any'是System.Data.Entity的一种方法,所以我希望能够选择它。我错过了什么?

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Entity;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using WhatWorks.Models;

namespace WhatWorks.Controllers
{
    public class InterventionController : Controller
    {
        private WhatWorksEntities db = new WhatWorksEntities();

        //
        // GET: /Intervention/

        // where parameter list only includes id
        public ActionResult Index(int id)
        {
            var model =
                    (
                        from i in db.tInterventions
                        where (i.householdID == id && !(i.tPersons.Any(t => i.householdID == id)))
                        select i
                    );

1 个答案:

答案 0 :(得分:0)

Any()是一个Linq扩展方法,可以应用于IEnumerables和IQueryables。

看起来你正在tPersons集合上执行.Any()但是在你使用'i'的谓词中,在你的情况下是tInterventions的实例。

因此,要么将i.householdID中的i替换为t.householdID,要么直接在tIntervensions上执行Any。