我正在开发 ap.net razor 页面 LINQ to SQL 函数。我遇到无法显示的问题
与
viewmodel AssetLPOvm
返回的结果不同的行
想要的结果
如果我有 2 或 3 行作为样本,则所有内容都是相同且重复的,因此我只需要返回唯一或不同的一行,因为其他行是重复的。
所以我需要使用group by而不是distinct返回不同的结果
我尝试使用如下所示的不同,但它不返回不同的行
那么我如何解决问题
public List<AssetLPOvm> GetAllLpoDetails(string SelectedCompany)
{
var AssetBranches = _unitOFWorkAsset.AssetBranches.GetList(x => x.CompanyNo == SelectedCompany && Convert.ToInt32(x.UserID) > 0 );
var NewAssetTagging = _unitOFWorkAsset.NewAssetTagging.GetList(x => x.LPONo > 0);
var result = (from assetBranch in AssetBranches
join user in Users on assetBranch.UserID equals user.UserID
join assetTagging in NewAssetTagging on Convert.ToDecimal(assetBranch.LPONO) equals assetTagging.LPONo
select new AssetLPOvm
{
AssetItemNo= assetBranch.AssetItemNo,
SupplierName=assetTagging.SupplierName,
SelectedMCUName= assetBranch.SelectedMCUName,
AssetOwner=assetBranch.AssetOwner,
ItemCode=assetBranch.ItemCode,
Qty = assetBranch.Qty,
LPONO = assetBranch.LPONO
}).Distinct().ToList();
return result;
}
public class AssetLPOvm
{
public string LPONO { get; set; }
public string AssetItemNo { get; set; }
public string SupplierName { get; set; }
public string SelectedMCUName { get; set; }
public string AssetOwner { get; set; }
public double Qty { get; set; }
public string ItemCode { get; set; }
}
public class AssetBranches
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public decimal ID {get;set;}
public string AssetItemNo { get; set; }
public string SelectedMCUName { get; set; }
public string AssetOwner { get; set; }
public double Qty { get; set; }
public string LPONO { get; set; }
public string ItemCode { get; set; }
}
public class NewAssetTagging
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public decimal ID { get; set; }
public decimal? LPONo { get; set; }
public decimal? SupplierNumber { get; set; }
}
public class User
{
public string vLoginName {get;set;}
public string UserName {get;set;}
}
如何对函数结果进行分组而不是使用 Distinct 函数?
我尝试使用 Distinct 但不返回不同的行。
我认为你可以使用 GroupBy 如下。 .GroupBy(x=>x.ItemCode).Select(x=>x.First()).ToList()