Veritabanındaki verileri farklı tablolarda ilişkiyle almak istiyorum, ancak nasıl kullanacağımı bilmediğim bir hata alıyorum ."Yöntem" hatası nasıl işlenir? İlk 'yalnızca son sorgu işlemi olarak kullanılabilir "
int customer_id = int.Parse(this.comboBoxnamecustomer.SelectedValue.ToString());
a = (from c in db.Invoices where c.CustomerID == customer_id select new {
customerName = c.Customer.Name,
ProductName = c.InvoiceItems
.Where(x => x.InvoiceId == c.InvoiceId)
.First().Product.ProductsName.Name
}).ToList();
işlenmeyen durum: System.NotSupportedException: 'İlk' yöntem yalnızca nihai bir sorgu işlemi olarak da kullanılabilir. Bunun yerine, bu örnekte 'FirstOrDefault' yöntemini kullanmayı düşünün.
Sorun, .First()
yöntemiyle ilgilidir, ancak onu kaldırırsam başka bir tabloya geçemiyorum.
http://stackoverflow.com/questions/7811544/why-does-ef-throw-notsupportedexception-the-method -first-can-be-be-used-as? rq = 1 – Eugene
Veritabanı yapınızın ne olduğundan emin değilim, ama sorgunuzla mantıklı bir şekilde yanlış bir şey var gibi görünüyor. C.InvoiceItems zaten sadece InvoiceItem.InvoiceId = Invoice.InvoiceId? Bu ilişkiyi zaten tanımladıysanız, Nerede kullanımınız gereksiz görünüyor. Ayrıca, müşterinin sahip olduğu her faturadaki ilk öğenin Ürün adını gerçekten istiyor musunuz? – hatchet