Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在实体框架中使用字段子集时出错_C#_Linq_Entity Framework - Fatal编程技术网

C# 在实体框架中使用字段子集时出错

C# 在实体框架中使用字段子集时出错,c#,linq,entity-framework,C#,Linq,Entity Framework,我第一次在WebAPI服务中使用EF4。我了解EF的基本知识,但当我习惯于使用ADO时,这仍然是一个学习过程 我只想返回表中100多个字段的子集(5) 模型(生成的EF): 在我的控制器中获取方法: // GET api/Products public IQueryable<ITEM_MASTER> GetProduct() { // return db.ITEM_MASTER; return db.ITEM_MASTER.Select(x => new Pr

我第一次在WebAPI服务中使用EF4。我了解EF的基本知识,但当我习惯于使用ADO时,这仍然是一个学习过程

我只想返回表中100多个字段的子集(5)

模型(生成的EF):

在我的控制器中获取方法:

// GET api/Products
public IQueryable<ITEM_MASTER> GetProduct()
{
    // return db.ITEM_MASTER;

    return db.ITEM_MASTER.Select(x => new ProductList { ItemCode = x.IM_ITEM_CODE });
}
ProductList类充当占位符对象,就像使用.Select返回一个不是原始对象类型的DBQuery一样。我读到这是处理这种情况的理想方法。当它工作时,我会向它添加更多属性。我有一个下载的示例,其结构与此相同,并且可以正常工作


这是做我需要的事情的最好方法,只返回EF字段的子集吗?如何解决转换错误?

错误很明显,您的方法应该返回
IQueryable
,但您正在尝试返回
“System.Linq.IQueryable”

由于您将查询结果投影到
“System.Linq.IQueryable”
,因此需要将其作为返回类型

// GET api/Products
public IQueryable<ProductList> GetProduct() //Change return type
{
    // return db.ITEM_MASTER;

    return db.ITEM_MASTER.Select(x => new ProductList { ItemCode = x.IM_ITEM_CODE });
}
//获取api/产品
public IQueryable GetProduct()//更改返回类型
{
//返回db.ITEM_MASTER;
返回db.ITEM\u MASTER.Select(x=>newproductlist{ItemCode=x.IM\u ITEM\u CODE});
}

由于您只选择了原始实体的一个子集,因此无法投影到实体框架中映射到表的实体,这就是为什么您需要一个PlaceHolder类
ProductList

错误很明显,假设您的方法返回
IQueryable
,但您正在尝试返回
“System.Linq.IQueryable”

由于您将查询结果投影到
“System.Linq.IQueryable”
,因此需要将其作为返回类型

// GET api/Products
public IQueryable<ProductList> GetProduct() //Change return type
{
    // return db.ITEM_MASTER;

    return db.ITEM_MASTER.Select(x => new ProductList { ItemCode = x.IM_ITEM_CODE });
}
//获取api/产品
public IQueryable GetProduct()//更改返回类型
{
//返回db.ITEM_MASTER;
返回db.ITEM\u MASTER.Select(x=>newproductlist{ItemCode=x.IM\u ITEM\u CODE});
}

由于您只选择了原始实体的一个子集,因此无法投影到实体框架中映射到表的实体,这就是为什么您需要一个PlaceHolder类
ProductList

错误很明显,假设您的方法返回
IQueryable
,但您正在尝试返回
“System.Linq.IQueryable”

由于您将查询结果投影到
“System.Linq.IQueryable”
,因此需要将其作为返回类型

// GET api/Products
public IQueryable<ProductList> GetProduct() //Change return type
{
    // return db.ITEM_MASTER;

    return db.ITEM_MASTER.Select(x => new ProductList { ItemCode = x.IM_ITEM_CODE });
}
//获取api/产品
public IQueryable GetProduct()//更改返回类型
{
//返回db.ITEM_MASTER;
返回db.ITEM\u MASTER.Select(x=>newproductlist{ItemCode=x.IM\u ITEM\u CODE});
}

由于您只选择了原始实体的一个子集,因此无法投影到实体框架中映射到表的实体,这就是为什么您需要一个PlaceHolder类
ProductList

错误很明显,假设您的方法返回
IQueryable
,但您正在尝试返回
“System.Linq.IQueryable”

由于您将查询结果投影到
“System.Linq.IQueryable”
,因此需要将其作为返回类型

// GET api/Products
public IQueryable<ProductList> GetProduct() //Change return type
{
    // return db.ITEM_MASTER;

    return db.ITEM_MASTER.Select(x => new ProductList { ItemCode = x.IM_ITEM_CODE });
}
//获取api/产品
public IQueryable GetProduct()//更改返回类型
{
//返回db.ITEM_MASTER;
返回db.ITEM\u MASTER.Select(x=>newproductlist{ItemCode=x.IM\u ITEM\u CODE});
}

由于您只选择原始实体的一个子集,因此无法投影到实体框架中映射到表的实体,这就是为什么您需要一个PlaceHolder类
ProductList

您一定是在开玩笑吧。我比那更好!!有时你会迷失在细节中,我专注于LINQ部分,甚至没有想到方法本身。非常感谢你,你一定是在开玩笑。我比那更好!!有时你会迷失在细节中,我专注于LINQ部分,甚至没有想到方法本身。非常感谢你,你一定是在开玩笑。我比那更好!!有时你会迷失在细节中,我专注于LINQ部分,甚至没有想到方法本身。非常感谢你,你一定是在开玩笑。我比那更好!!有时你会迷失在细节中,我专注于LINQ部分,甚至没有想到方法本身。非常感谢你。