2

我使用 Linq-to-SQL 创建了一个 Area 类。

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

错误 1 ​​无法将类型 ' System.Data.Linq.Table<SeguimientoDocente.Area>' 隐式转换为 ' System.Linq.IQueryable<SeguimientoDocente.Models.Area>' C:\Users\Sergio\documents\visual studio 2010\Projects\SeguimientoDocente\SeguimientoDocente\Models\AreaRepository.cs 14 20 SeguimientoDocente

代码:

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
    {

    }
}

这是一个屏幕截图。

替代文字

4

2 回答 2

3

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

编辑

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

错误 1 ​​无法将类型“ System.Data.Linq.Table<SeguimientoDocente.Area>”隐式转换为“ System.Linq.IQueryable<SeguimientoDocente.Models.Area>

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

于 2010-07-28T02:28:34.457 回答
2

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

于 2010-07-28T01:24:43.880 回答