2010-07-28 7 views
2

Я создал класс Area, используя Linq-to-SQL.Ошибка при попытке создания частичного класса

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

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

ответ

3

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

EDIT

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

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

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

2

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

+0

Я следую этому руководству. Какие-либо предложения? –

+0

Обратите внимание, что эта ошибка появляется только при добавлении частичного класса Area. Когда нет частичной части Area, код компилируется и слова правильно. –

+0

На самом деле вопрос OP не был правильно помечен. Обычно таблица действительно реализует IQueryable , но в этом случае он непреднамеренно определил T2, который имеет то же простое имя, что и T1. – Josh

Смежные вопросы