使用Entity框架返回所有IQueryable

时间:2009-08-18 11:10:51

标签: c# entity-framework

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

我收到错误:

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;
    }

更新:过滤项目,它们在“物理”中位于Filters-folder中,但名称空间与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 个答案:

答案 0 :(得分:2)

你有吗

using System.Data;
using System.Data.Objects.DataClasses;

在你的使用中?

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

应该是

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

希望有所帮助,

答案 1 :(得分:2)

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