0

我正在使用 Linq 从数据库和实体框架中选择项目来创建我的实体。Entity Frameworks 还使用导入函数向导创建了复杂类型。每次我使用任何复杂类型返回查询时,当我尝试将结果转换为复杂返回类型时都会得到一个空值。

private AWorksLTEntities db = new AWorksLTEntities();

public IQueryable<SelectAll_Result> SelectAllMethod()
{
    var result = from p in db.Products
                 select p;
    return result as IQueryable<SelectAll_Result>;
}

SelectAll_Result 是 EntityFrameworks 创建的复杂类型,强制转换不起作用,我的方法返回 null。

使用普通实体的相同代码确实返回值

private AWorksLTEntities db = new AWorksLTEntities();
public Product SelectAllMethod()
{
    var result = from p in db.Products
                 select p;
    return result;
}

我的问题是,虽然这个例子很简单,但我正在使用我正在使用的代码生成器创建这个查询,并且返回类型很难确定,所以我需要能够使用实体生成的复杂返回类型框架函数导入而不是标准实体返回。

有任何想法吗?提前致谢。

4

1 回答 1

2

强制转换运算符不知道如何从一个类转换为另一个不相关的类。您必须自己提供转换:

public IQueryable<SelectAll_Result> SelectAllMethod()
{
    var result = from p in db.Products
                 select new SelectAll_Result() { a = p.a, b = p.b, ... };
    return result;
}
于 2013-01-25T13:25:29.407 回答