尝试创建分部类时出错

时间:2010-07-28 01:19:59

标签: c# linq-to-sql partial

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

现在我想创建一个同名的部分类,以便我可以实现验证。有什么帮助吗?

  

错误1无法隐式转换类型   'System.Data.Linq.Table<SeguimientoDocente.Area>'   至   'System.Linq.IQueryable<SeguimientoDocente.Models.Area>'C:\ Users \ Sergio \ documents \ visual   工作室   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
    {

    }
}

这是截图。 alt text

2 个答案:

答案 0 :(得分:3)

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

修改

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

  

错误1无法隐式转换类型   'System.Data.Linq.Table<SeguimientoDocente.Area>'   至   'System.Linq.IQueryable<SeguimientoDocente.Models.Area>'

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

答案 1 :(得分:2)

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