我有三個模型和一個View模型。該模型是這樣的:生成序列號。在列表中使用LINQ
public partial class SalesDetail
{
public long IID { get; set; }
public Nullable<long> SalesId { get; set; }
public int ItemId { get; set; }
public int UoM { get; set; }
public int Qty { get; set; }
public Nullable<decimal> Disc { get; set; }
public virtual General General { get; set; }
public virtual Item Item { get; set; }
public virtual Sale Sale { get; set; }
}
public partial class Item
{
public Item()
{
this.SalesDetails = new HashSet<SalesDetail>();
}
public int IID { get; set; }
public string Item1 { get; set; }
public int UoM { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<SalesDetail> SalesDetails { get; set; }
}
public partial class General
{
public General()
{
this.Parties = new HashSet<Party>();
this.Parties1 = new HashSet<Party>();
this.SalesDetails = new HashSet<SalesDetail>();
}
public int IID { get; set; }
public string Value { get; set; }
public string Desciption { get; set; }
public byte Type { get; set; }
public Nullable<int> ParentID { get; set; }
}
我也有一個像視圖模型:
public class SalelsDetailListViewModel
{
public int SerialNo { get; set; }
public Int64 Id { get; set; }
public int ItemId { get; set; }
public string ItemName { get; set; }
public int UoM { get; set; }
public string UnitName { get; set; }
public int Qty { get; set; }
public decimal? Disc { get; set; }
}
我試圖生成序列號。同時執行linq查詢作爲列表。稍後,此列表將顯示爲序列號爲的表格。 我寫了下面的查詢。
lstDetails = (from d in db.SalesDetails
join i in db.Items on d.ItemId equals i.IID
join u in db.Generals on d.UoM equals u.IID
select new SalelsDetailListViewModel
{
SerialNo = ???,
Id = d.IID,
ItemId = i.IID,
ItemName = i.Item1,
UoM = u.IID,
UnitName = u.Value,
Qty = d.Qty,
Disc = d.Disc
}).ToList();
我不明白如何增加與其他項目的查詢內序列號。 任何幫助將被感謝接受。
感謝
帕塔
就在你聲明'lstDetails'之前,你可以聲明'int count = 0'並且執行'SerialNo = count ++' 但是如果你在運行中生成它,你將如何使用那個串行?對於你的客戶來說,這是沒有意義的,如果有人在視圖中看到它並將其發回,你將如何將它與你的數據相匹配? – ironstone13
我已經嘗試過,但序列號總是0. – Partha
我已經測試了我的建議,它的工作原理。我在下面的答案中提供了一些替代方案。讓我知道,如果它不適合你,我們會找出原因。 – ironstone13