C# 尝试创建分部类时出错

C# 尝试创建分部类时出错,c#,linq-to-sql,partial,C#,Linq To Sql,Partial,我已经使用LINQtoSQL创建了一个Area类 现在我想创建一个同名的分部类,以便实现验证 错误1无法隐式转换类型 'System.Data.Linq.Table' 到 'System.Linq.IQueryable'C:\Users\Sergio\documents\visual 演播室 2010\Projects\SeguimientoDocente\SeguimientoDocente\Models\AreaRepository.cs 14 20 SeguimientoDocente 代

我已经使用LINQtoSQL创建了一个Area类

现在我想创建一个同名的分部类,以便实现验证

错误1无法隐式转换类型 'System.Data.Linq.Table' 到 'System.Linq.IQueryable'C:\Users\Sergio\documents\visual 演播室 2010\Projects\SeguimientoDocente\SeguimientoDocente\Models\AreaRepository.cs 14 20 SeguimientoDocente

代码:

这是一个截图


错误消息告诉您问题出在AreaRepository.cs文件的第14行。具体来说,您正试图从返回类型为IQueryable的方法返回db.Areas,尽管db.Areas实际上是System.Data.Linq.Table类型。

这几乎可以肯定,因为您的分部类不在正确的命名空间中。进入LINQ模型的.designer.cs文件,查找生成的Area类,并确保将分部类包装在匹配的名称空间中

编辑

我刚刚修正了你问题中的格式。错误消息实际上表明您的分部类位于错误的命名空间中

错误1无法隐式转换类型 'System.Data.Linq.Table' 到 “System.Linq.IQueryable”


从上面的错误可以看出,您需要将分部类所在的命名空间更改为SeguimientoDocente,而不是SeguimientoDocente.Models。现在,它们是两种完全不同的不兼容类型,恰好有相同的简单名称。

我将学习本教程。有什么建议吗?请注意,只有在添加partial Area类时才会出现此错误。当没有部分区域时,代码编译正确,单词正确。实际上OP的问题没有正确标记。通常情况下,Table确实实现了IQueryable,但在本例中,他无意中定义了一个与T1具有相同简单名称的T2。@Josh谢谢。我考虑过这一点,但在使用DataContext的类中没有看到名称空间导入。不过,我现在明白为什么了。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace SeguimientoDocente.Models
{
    public class AreaRepository
    {
        private SeguimientoDataContext db = new SeguimientoDataContext();

        public IQueryable<Area> FindAllAreas()
        {
            return db.Areas;
        }

        public Area GetArea(int id)
        {
            return db.Areas.SingleOrDefault(a => a.ID == id);
        }

        public void Add(Area area)
        {
            db.Areas.InsertOnSubmit(area);
        }

        public void Delete(Area area)
        {
            db.Areas.DeleteOnSubmit(area);
        }

        public void Save()
        {
            db.SubmitChanges();
        }
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace SeguimientoDocente.Models
{
    public partial class Area
    {

    }
}