我有两个模型类
public class GetProductNameRequest
{
public DateTime ExpiryDate { get; set; }
public bool IsActive { get; set; }
}
public class GetProductNameResponse
{
public List<string> ProductName { get; set; }
}
linq查询:
public async Task<List<ProductSKU>> GetProductNames(GetProductNameRequest request)
{
var res = DbSet.Include(t => t.Product).Where(t => t.EndDate >= request.ExpiryDate && t.IsActive == request.IsActive).GroupBy(x => x.Product);
Contracts.Models.ProductNameResponse product = new Contracts.Models.ProductNameResponse();
foreach (var item in res)
{
product.ProductName = item.Key.ProductName;
}
}
所以我无法根据ID的plz获取产品名称列表,让我知道解决方案。
productsku表:
SkuId ProductId Sku MRP CreatedOn UpdatedOn StartDate EndDate IsActive RowVersion
答案 0 :(得分:2)
您的代码中存在许多问题。您没有在product
变量中得到任何东西的两个最明显的原因是,该变量在循环内被初始化,并且没有添加任何内容。代码应类似于
Contracts.Models.ProductNameResponse product = new Contracts.Models.ProductNameResponse();
foreach (var item in res)
{
product.ProductName.Add(item.Key.ProductName);
}
我还认为您的LINQ语句仍然会引发一个错误,即一个游标未打开而另一个游标却打开。搜索IQueriable vs IEnumerable问题。但是您不会将其列为问题;所以也许在您的数据源中就可以了。