Linq 将返回类型转换为复杂类型

本文关键字:复杂 类型 类型转换 返回 Linq | 更新日期: 2023-09-27 17:56:04

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

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是由实体框架创建的复杂类型,强制转换不起作用,我的方法返回 null。

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

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

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

有什么想法吗? 提前谢谢。

Linq 将返回类型转换为复杂类型

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

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