我刚刚从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;
}
答案 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节点资源管理器)。