2009-08-18 95 views
1

我刚刚从Linq切换到实体框架,并且遇到了返回“所有行”的方法的问题。我得到:“类型'System.Data.Objects.DataClasses.EntityObject'是在一个未调用的程序集中定义的”我的“服务层”中调用数据层的错误“。返回所有IQueryable与实体框架

我得到一个错误:

BookingObjectRepository _repository = new BookingObjectRepository(); 

public IQueryable<BookingObject> GetBookingObjects() 
{ 
    return _repository.GetBookingObjects(); 
} 

,并在“数据层”我有:

BookingsystemEntities _entities = new BookingsystemEntities(); 

public IQueryable<BookingObject> GetBookingObjects() 
    { 
     return from bo in _entities.BookingObjectSet 
       select bo; 
    } 

UPDATE:过滤项,它们是“物理”的过滤器,文件夹,但命名空间与emdx文件使用的相同。

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 

namespace BookingSystem.Data.Models 
{ 

public static class BookingObjectFilters 
{public static IQueryable<BookingObject> ByBookingObjectID(this IQueryable<BookingObject> qry, int bookingobjectID) 
{ 
return from bo in qry 
       where bo.BookingObjectID == bookingobjectID 
       select bo; 
} 

回答

2

您的系统必须具有.NET 3.5 SP 1或更好的安装,您的项目亩st引用System.Data.Entity程序集(查看解决方案资源管理器中的引用节点)。

2

你有

using System.Data; 
using System.Data.Objects.DataClasses; 
在usings

public IQueryable GetBookingObjects() { return _repository.GetBookingObjects(); } 

也许应该

public IQueryable<BookingObject> GetBookingObjects() { return _repository.GetBookingObjects(); } 

希望帮助,

+0

我应该在那里添加?在我的数据库中的存储库? – 2009-08-18 11:17:45

+0

aye,在存储库中的DAL – 2009-08-18 11:24:22

+0

仍然同样的错误:( – 2009-08-18 11:26:09