複数の請求書明細で請求書を作成しています。これは、請求書には、複数の請求書明細でどのように見えるかです: Linq - シーケンスに複数の要素が含まれています
私はページ全体の更新を行う際に、それが壊れると、このエラーがスローされます。
public ActionResult Create(long userId, long invoiceId)
{
ViewBag.InvoiceId = invoiceId;
ViewBag.UserId = userId;
ViewBag.UserId = userId;
var objInvoiceItems = (from i in db.tblinvoiceitems
where i.InvoiceId == invoiceId
select i
).ToList();
var a = (from o in objInvoiceItems
select new InvoiceItemViewModel {
Description = o.DESCRIPTION,
Quantity = o.Quantity,
Rate = o.Rate,
Id = o.ID,
InvoiceId = o.InvoiceId
}).ToList();
var objInvoice = (from i in db.tblinvoices
where i.ID == invoiceId
select i
).ToList();
var obj = (from i in objInvoice
join j in a
on i.ID equals j.InvoiceId
select new InvoiceCreateViewModel
{
AmountPaid = i.AmountPaid,
DueDate = i.DueDate,
InvoiceNo = i.ID,
UserId = i.UserId,
InvoiceItems = a
//InvoiceItems = j
}).SingleOrDefault();
//obj.InvoiceItems = ListInvoiceItems(invoiceId.ToString()).Model;
if (obj == null)
{
obj = new InvoiceCreateViewModel();
}
return View(obj);
}
public class InvoiceCreateViewModel
{
public long? UserId { get; set; }
public double? AmountPaid { get; set; }
public DateTime? DueDate { get; set; }
public double? TotalAmount { get; set; }
public long InvoiceNo { get; set; }
public double? Rate { get; set; }
public string Description { get; set; }
public int? Quantity { get; set; }
public IEnumerable<InvoiceItemViewModel> InvoiceItems { get; set; }
}
:これは私のコードである
Sequence contains more than one element
を
これは、ラインSingleOrDefault()
で壊れています。請求書は常に1つで、InvoiceItemsは複数にすることができます。私はAdd new Invoice Items
をjqueryを介して別の関数で処理していますので、この関数は請求書項目のない新しい請求書を作成すると一度しかヒットしません。
複数の請求書明細で1つの請求書を返送したいと思います。
これをすべてのあなたのLINQクエリを行うことができます複数のinvoiceItemが存在する可能性があるため、デカルト積の結果です。あなたがしたいのは 'InvoiceItemViewModel'のリストを持つ' InvoiceCreateViewModel'を持っています –
はい、どうしますか?私のinvoicecreateviewmodelでは、私はienumberable –
Baahubali