Ошибка при попытке создать частичный класс - PullRequest
2 голосов
/ 28 июля 2010

Я создал класс Area с использованием Linq-to-SQL.

Теперь я хочу создать частичный класс с тем же именем, чтобы я мог реализовать проверку. Любая помощь?

Ошибка 1 Не удается неявно преобразовать тип 'System.Data.Linq.Table<SeguimientoDocente.Area> в 'System.Linq.IQueryable<SeguimientoDocente.Models.Area>' C: \ Users \ Sergio \ Documents \ visual студия 2010 \ Проекты \ 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 ]

3 голосов
/ 28 июля 2010

Это почти наверняка, потому что ваш частичный класс находится не в нужном пространстве имен. Перейдите в файл .designer.cs модели LINQ, найдите сгенерированный класс Area и убедитесь, что пространство имен, в которое вы поместили частичный класс, совпадает.

EDIT

Я только что исправил форматирование в вашем вопросе. Сообщение об ошибке фактически указывает на то, что ваш частичный класс находится в неправильном пространстве имен.

Ошибка 1 Не удается неявно преобразовать тип 'System.Data.Linq.Table<SeguimientoDocente.Area> в 'System.Linq.IQueryable<SeguimientoDocente.Models.Area>

Как видно из приведенной выше ошибки, вам нужно изменить пространство имен, в котором находится ваш частичный класс, на SeguimientoDocente, а не SeguimientoDocente.Models. В настоящее время это два совершенно разных несовместимых типа, которые имеют одно и то же простое имя.

2 голосов
/ 28 июля 2010

Сообщение об ошибке говорит вам, что проблема в строке 14 файла AreaRepository.cs.В частности, вы пытаетесь вернуть db.Areas из метода, тип возвращаемого значения которого IQueryable<Area>, хотя db.Areas фактически имеет тип System.Data.Linq.Table.

...