Githubda hiç pull request atmadım daha nce, github nasıl kullanılır o konuda da zayıfım :) Bi deniyeyim bakalım. Edit: Şimdi kurcalıyorum hocam. 1-2 saate çzerim heralde. Hannibal_King tarafından 13/Eyl/17 17:29 tarihinde düzenlenmiştir

hocam detaylı yanıtın için çok teşekkür ederim. githubtan da PR ı mergeledim. ancak şyle bi sıkıntı oluyor derleyip çalıştırdığımda: The entity or complex type 'FitnessWebAppModel. Antrenmanlar' cannot be constructed in a LINQ to Entities query. biraz googleladım sorun hakkında. buradahttps://stackoverflow.com/questions/37224610/the-entity-or-complex-type-cannot-be-constructed-in-a-linq-to-entities-query sylenen şey entity frameworkün bu işlemin şu an yaptığımız şekilde yapılmasını desteklemiyor olması deniyor. entity frameworkün veritabanındaki Antrenmanlar adında tanımladığı modelin dışına çıkmaya çalıştığımızdan sanıyorum. stackoverflowdaki sorulan diğer sorulara gelen çzümlerden çıkardığım şey şu: . Select(p => new WorkoutFullDetail yerine. Select(p => new kullanmamız gerektiği. bu da senin yaptığın WorkoutFullDetail modelini boşa mı yapmış olduğunu gsteriyor anlamadım. senin oluşturduğun model üzerinden bu sorguyu ne şekilde düzeltmeliyiz? Abizittin tarafından 13/Eyl/17 22:08 tarihinde düzenlenmiştir

Never skip leg day bro :P Too weird to live, too rare to die.

Yok yok sadece kısmını siler misin? Constructor a izin vermiyor sanırım. Linq ifadelerindeki bu 3 ifadenin de kısmını siler misin? new WorkoutFullDetail new Antrenmanlar new AntremanKayit

@Hannibal_King güncelledim hocam. HomeController içerisindeki Index methodu ve index. cshtml dosyalarına bakabilirsen demek istediğimi greceksindir. @TeRRoR evet hocam dediğin gibi ortalık biraz karışıyor. Tekrar anlatayım. Index methodunun return View ile antrenmanları gnderiyorum. cshtml içerisinde bunu for dngüsüne sokuyorum, dngü içerisinde antrenmandaki hareketlerin olduğu tabloya ait sorguyu yapıyorum antrenmanID değerini kullanarak, hareketler için de bir for dngüsü oluşturuyorum, bu dngü içerisinde de bu hareketID ye ait setlerin kaydının tutulduğu tabloya sorgu yapıyorum.

Yok yok sadece kısmını siler misin? Constructor a izin vermiyor sanırım. Linq ifadelerindeki bu 3 ifadenin de kısmını siler misin? new WorkoutFullDetail new Antrenmanlar new AntremanKayit dediğin şekilde yaptım ancak aynı hatayı veriyor hocam.

farketmen anlamlı olmuş hocam :D omuzun altına onu da sıkıştırıyorum :)

hocam yanıtların için teşekkür ederim. ilk soruya verdiğin yanıtla ilgili verdiğin linkten başlayarak biraz araştırıcam. diğer yanıtların yeterince açıklayıcı olmuş zaten.

Entity Framework burada ORM aracımız. LINQ ise Language-Integrated Query yani dile entegre edilmiş sorgu aracı. LINQ ile biz xml i de sorgulayabilirz, List<T> türünden bir sınıfıda sorgulayabilirz. Hatta o yüzden Linq to XML, Linq to Object, Linq to Sql falan gibi ifadeler kullanıyoruz. Burda sorun LINQ tarafında sanırım. Bize diyorki eğer beni kullanarak Entity Framework e sorgu gndereceksen ve bu sorgunda new operatrü de varsa işte o zaman new operatründen sonra ya anonim olarak sınıf yaratacaksın yada projede istediğin yerde bi sınıf oluşturup o sınıfı new ile kullanacaksın. Yani hali hazırda veritabanında bir tabloyu temsil eden sınıfları sorgu içinde new operatrü ile kullanamazsın. Yani senin proje için Antremanlar AntremanKayitlari Hareketler HareketSetleri Bu 4 ünü Linq to entities içinde new operatrü ile kullanamazsın. İlk sylediğim parantezler ile bir ilgisi yok hocam. Problem LINQ den kaynaklı.

hocalar selam. viewmodel üzerine bugün baya uğraştım. @Hannibal_King in oluşturduğu viewmodel klasrünü biraz elden geçirdim. viewbag kullandığım, view'e birden fazla tablodan veri gnderen her methodu refactor ettim. yine @Hannibal_King in yazdığı WorkoutFullDetail modelini de elden geçirdim. İçerisinde tanımlanan tüm modelleri DataTransferObject klasrünün içerisine aldım. Bunu yapma sebebim aynı alt modellere tekrar tekrar diğer viewmodel sınıflarında da ihtiyaç duyduğumu farketmemdi. Her viewmodel için tekrar tekrar aynı alt modelleri yazmaktansa bu daha derli toplu olur diye düşündüm. 3 saatimi çalıp ciğerimi sken bi amatrlüğümü farkettim. Nasıl ki herhangi bir viewmodel sınıfı içerisindeki tipi List olan property için controller içerisinde ToList şeklinde sorgulama yapıyorsak, tablodaki bir tane veri için de FirstOrDefault kullanmamız gerekiyormuş. acı yoldan ğrendim. Abizittin tarafından 15/Eyl/17 18:51 tarihinde düzenlenmiştir

hocalar tekrar merhaba sorduğum ilk soruya viewbag, viewdata cevap olarak geldi. biraz araştırdım gayet güzel sorduğum soraya verilen cevap doğru. sıkıntı şu; ben soruyu biraz eksik sormuşum. cshtml içerisinde yaptığım sorgular where gibi bi alan içeriyor. klasik makale sitesindeki kategori mantığıyla anlatmaya çalışayım. benim controller içerisinden view olarak yolladığım değer tüm kategorileri içeriyor. cshtml içerisinde kategorileri for dngüsüne sokup kategori idsine ait olan yazıları bulmak için tekrar sorgulama yapıyorum. benim bu sorguyu controller içerisine almam mümkün mü? controller içerisinde kategorileri for dngüsüne sokmam ve her dngüde yeni bi viewbag tanımlayıp buna cshtml içerisinden yine bi for dngüsü ile erişmeye çalışmam çok mu amatrce olur? var kategoriler = dbContext. Kategoriler. ToList ; for(int i=0; i < kategoriler. Count; i++) bu kullanım mümkün mü mantıklı mı daha iyi bi yntem var mı? Hocam ncelikle viewbag, tempdata bunları kullanmanı pek nermem. mümkün mertebe action'dan view'a model geçir. bylece kodun daha derli toplu olur. bür türlü ortalık çplüğe dnüyor ve view'da ne var, action'dan view'a ne geçti parametre parametre bakman gerekir. güzel durmaz. Doğru anladım mı emin değilim ancak, amacın bulunulan kategorilerdeki yazıları sayfada gstermekse; direk controller'da dbContext. Kategoriler. Where . ToList seklinde List'e alıp bunu view'e geçirmen gerekiyor. tüm yazıları alıp, bunu view'da for'la dndürmek yada yine aynı mantığı controller'da yapman hammallık. where koşulunu direk ilk sorgunda kullanabilirsin. herkes programcı olmak zorunda değildir, lütfen bir zorunluluk gibi programlama dilleri ğrenmeye çalışmayın. yabancı dil filan ğrenin amq.// s. kimin etini yerim, kasaba minnet etmem.// ince düşünene kalın girer.//

Asp. Net Mvc ile alakalı başka sorun olursa bildiklerimi paylaşırım hocam. Ama test yazma muhabbetlerini falan bende pek bilmiyorum. Çok yüzeysel bilgim var test konusunda.

hocalar selam. asp. net ile mssql veritabanı kullanarak kendi antrenmanlarımın kaydını tutmak için localhostta çalışan bi uygulama yazdım. GitHub linki Ekran grüntüleri byle bi şeye gerek var mıydı? hayır. halihazırda bunu yapan telefon uygulamaları var. amacım başından sonuna kadar tasarlayıp, kendime ufak deadlinelar koyarak kendimi geliştirmek. ne ğrendim? Entity framework CRUD işlemleri Responsive tasarım CSHTML, routing , farklı controller ile çalışma. Az biraz exception handling. merak edip işin ustalarına sormak istediklerim: return View içerisine nasıl birden fazla parametre gnderebilirim? rneğin dashboard ekranında antrenmanlar, hareketler ve setleri listeleniyor. cshtml içerisinde sorgulama yapmak pek doğru gelmiyor bana? Action controllera link gnderdiğimde (rn: /Action/SetSil/12) id değeri girmezsem uygulama patlıyor. Sebebi action controller içerisinde public ActionResult SetSil şeklinde kullanıyor olmam. Burada id girilmezse diye nasıl bi exception handling uygulayabilirim? Fonksiyon içerisinde if kullanmak problemimi çzer mi? Action controller içerisinde antrenman, antrenmandaki hareketler, hareketlere ait setleri silmek için 3 kez dbContext. SaveChanges kullanıyorum. Buna gerek var mı? En sonda bi tane SaveChanges kullanmam yeterli olur mu? 3 kez kullansam ilerde başıma iş olur mu? Action controller içerisine formdan post ettiğim verilere ideal ulaşma yntemim nasıl olmalı? public ActionResult FonksiyonAdi şeklinde entitye ait alanlara karşılık gelen değerleri alabiliyorum ama modelden bağımsız veriler post etmek istersem ne kullanmalıyım bilmiyorum. Daha genel bi soru sormak gerekirse bi amatre gz nüne alındığında kodlama açısından ne tarz yanlışlarım var, neler ğrenmeliyim?

PR attım hocam deneyip sonucu yazar mısın? Eğer yine olmazsa bu defa bana veritabanını at. Ben kendi localimde deneyeyim. 1-2 aydır mvc yazmadım ondan aklımdan çıkmış o linq muhabbeti düzelttim şimdi bakarsın olmuş mu diye.

hoca tekrar teşekkür ederim eline koluna sağlık. bi iki gün şu kodları sindirmeye çalışayım ben.

hocam güzel fikir. unit test ile ilgili bildiğim tek şey swift tutoriallarından üstünkrü anladığım kadarıyla program içerisinde her methoda karşılık gelen, veri girişini veya o fonksiyon her ne yapıyosa onu simule edecek kontrol fonksiyonları yaratmak ve parametre girerek veya girmeyerek beklenen sonucu vermesini sağlamak. uygulama içerisine eklemek istediğim ve benim günlük kullanımımı kolaylaştıracak bi kaç ufak blüm daha var güncelleme vs gibi. onların ardından unit test kısmına girişebilirim. başlangıç için nerebileceğin dküman, video vs varsa seve seve incelerim hocam.

@Abizittin ilk yıldızın bende. Tebrik ederim ve başarılarının devamını dilerim. "biz televizyon izleyerek, milyonerler, sinema tanrıları, rock yıldızları olacağımıza inanarak büyüdük ama olamayacağız... hepimiz heba oluyoruz... bütün bir nesil benzin pompalıyor, garsonluk yapıyor ya da beyaz yakalı kle olmuş... reklamlar yüzünden araba ve kıyafet peşindeyiz... nefret ettiğimiz işlerde çalışıyor, gereksiz şeyler alıyoruz..

githubdan takip ediyorum hocam teşekkür ederim. doğru mu yaptım bilmiyorum ancak script olarak tüm veritabanını almaya çalıştım çıkan sonuç bu. USE GO / Object: Table . Script Date: 13.09.2017 22:37:15 / SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE . ( IDENTITY(1,1) NOT NULL, NOT NULL, NOT NULL, NOT NULL, CONSTRAINT PRIMARY KEY CLUSTERED WITH ON ) ON GO / Object: Table . Script Date: 13.09.2017 22:37:16 / SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO CREATE TABLE . ( IDENTITY(1,1) NOT NULL, (250) NULL, NOT NULL, (1) NOT NULL, CONSTRAINT PRIMARY KEY CLUSTERED WITH ON ) ON GO SET ANSI_PADDING OFF GO / Object: Table . Script Date: 13.09.2017 22:37:16 / SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO CREATE TABLE . ( IDENTITY(1,1) NOT NULL, (150) NOT NULL, CONSTRAINT PRIMARY KEY CLUSTERED WITH ON ) ON GO SET ANSI_PADDING OFF GO / Object: Table . Script Date: 13.09.2017 22:37:16 / SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE . ( IDENTITY(1,1) NOT NULL, NOT NULL, NOT NULL, NOT NULL, CONSTRAINT PRIMARY KEY CLUSTERED WITH ON ) ON GO ALTER TABLE . WITH CHECK ADD CONSTRAINT FOREIGN KEY REFERENCES . GO ALTER TABLE . CHECK CONSTRAINT GO ALTER TABLE . WITH CHECK ADD CONSTRAINT FOREIGN KEY REFERENCES . GO ALTER TABLE . CHECK CONSTRAINT GO Abizittin tarafından 13/Eyl/17 22:38 tarihinde düzenlenmiştir

Github üzerinden kodu günceller misin? Sonra hangi kısmı diyorsan tekrar syle kod üzerinden bakayım.

eyv hocam yorumların için. herkesin ğrenme metodu farklı oluyo. ben uzun bi süre nce yaparak ğrenme ynteminin benim için en uygunu olduğunu farkettim hep de yle yapıyorum hem daha eğlenceli oluyo. nümüzdeki bi kaç gün view içerisine veri gndermeyi ve transaction konusunu biraz daha detaylı araştırıp uygulamaya çalışıcam.

@Dark_Lord hocam teşekkür ederim. sağolasın yıldız için de. @TeRRoR çok teşekkürler hocam pull için. ben senin yerine denicem kodları. EntityState neden kullanıyorum bilmiyorum. sanırım tutoriallardan kalma bi alışkanlık. tavsiyeler için de ayrıca teşekkürler.

şimdi çalıştı hocam eline sağlık. dbContext. Antrenmanlar bu satırda entity framework kendi oluşturduğu antrenmanlar modeline ulaşmaya çalışıyor anladığım kadarıyla. biz de diyoruz ki hayır onu değil WorkoutFullDetail içerisindeki Antreman modelini kullanacaksın. doğru mu anlamışım?

Attığın resimden yola çıkarak. Nasıl bir viewmodel class ı oluşturabiliriz diye düşündüm. yle bir viewmodel class ı oluşturalım ki dashboard için ne gerekiyorsa hepsini içinde barındırsın. Projenin root un da ViewModels isimli bir klasr oluşturdum. İçinede WorkoutFullDetail isminde bir sınıf koydum. Bu sınıfı yle bir organize edicezki sen dashboard üzerinde hangi verileri gstericeksen yada hangi verilere ihtiyacın varsa sadece onları taşıyacak. Fiziksel olarak. cs uzantılı bir dosyamızın içine 1 den fazla sınıf koyabiliriz. Java ile çalışıyor olsaydık 1 fiziksel dosya ya sadece 1 adet sınıf koyabilecektik. ViewModel sınıfımızı hazırladık. Sonra Controller içinde join ve altsorgular ile ihtiyacım olan herseyi çekiyorum. View katmanında hiç gereksiz c# kodu yok sadece foreach var. Sorgu falan yok yani view katmanında. Test etmedim veritabanı yok diye. Resimleri sıra ile atıyorum. View resminin alt kısımları sığmadı alt kısmın gzüktüğü şekilde atıyorum tekrar. Test etmedim ama %99 sorun yoktur hocam. Hannibal_King tarafından 13/Eyl/17 15:08 tarihinde düzenlenmiştir

eyv hocam en kısa zamanda kurcalamaya başlarım.

nemli değil hocam sormak istediğin bi şey olursa yazarsın. Bildiğim kadarıyla cevaplarım.

Hocam sahane gidiyorsun eline saglik. herkes programcı olmak zorunda değildir, lütfen bir zorunluluk gibi programlama dilleri ğrenmeye çalışmayın. yabancı dil filan ğrenin amq.// s. kimin etini yerim, kasaba minnet etmem.// ince düşünene kalın girer.//

@Hannibal_King hacı alıntılamadım mesajını sayfa şişmesin diye. Projede PR'ını gremedim, PR oluşturabilir misin. herkes programcı olmak zorunda değildir, lütfen bir zorunluluk gibi programlama dilleri ğrenmeye çalışmayın. yabancı dil filan ğrenin amq.// s. kimin etini yerim, kasaba minnet etmem.// ince düşünene kalın girer.//

Hocam eline sağlık. . gitignore dosyası eklemende fayda var projeye. . gitignore'dan sonra packages'ıda silersin. zaten Nuget yüklüyor paketleri. Clone süresi gereksiz uzar. Kodlara bakma fırsatım olmadı. Birde ReadME koyabilirsen çok güzel olur. Hocam kodlarını gzden geçirdim. ncelikle Türkçe kullanmaktan vazgeç. En azından method ve değişken isimlerinde kullanma. Yorum satırlarında Türkçe yazmaya devam edebilirsin. Method'lara yorum satırı ekleyeceksen // şeklinde değil, /// ile yorum ekle. Birde veritabanında birden fazla silme işlemi yapıyorken Transaction kullanımı için ufak bir değişiklik yaptım. Ona bakarak diğer yerlerde varsa eğer, oralardada kullanabilirsin. Pull Request açtım github'da yazdıklarıma istinaden ama test etme fırsatı bulamadım. Ayrıca dbContext. Entry . State = EntityState. Added; buradaki kullanımı dbContext. AntrenmanKayitlari. Add ; şeklinde neden yapmadığını merak ettim hocam. Başarılar... TeRRoR tarafından 11/Eyl/17 11:01 tarihinde düzenlenmiştir herkes programcı olmak zorunda değildir, lütfen bir zorunluluk gibi programlama dilleri ğrenmeye çalışmayın. yabancı dil filan ğrenin amq.// s. kimin etini yerim, kasaba minnet etmem.// ince düşünene kalın girer.//

hocalar tekrar merhaba sorduğum ilk soruya viewbag, viewdata cevap olarak geldi. biraz araştırdım gayet güzel sorduğum soraya verilen cevap doğru. sıkıntı şu; ben soruyu biraz eksik sormuşum. cshtml içerisinde yaptığım sorgular where gibi bi alan içeriyor. klasik makale sitesindeki kategori mantığıyla anlatmaya çalışayım. benim controller içerisinden view olarak yolladığım değer tüm kategorileri içeriyor. cshtml içerisinde kategorileri for dngüsüne sokup kategori idsine ait olan yazıları bulmak için tekrar sorgulama yapıyorum. benim bu sorguyu controller içerisine almam mümkün mü? controller içerisinde kategorileri for dngüsüne sokmam ve her dngüde yeni bi viewbag tanımlayıp buna cshtml içerisinden yine bi for dngüsü ile erişmeye çalışmam çok mu amatrce olur? var kategoriler = dbContext. Kategoriler. ToList ; for(int i=0; i < kategoriler. Count; i++) bu kullanım mümkün mü mantıklı mı daha iyi bi yntem var mı?

O zaman birde unit test yazmaya başlarsan güzel olur. Proje buna uygun. Kodlarda değişiklikler gerekecektir ama senin için faydası olur. herkes programcı olmak zorunda değildir, lütfen bir zorunluluk gibi programlama dilleri ğrenmeye çalışmayın. yabancı dil filan ğrenin amq.// s. kimin etini yerim, kasaba minnet etmem.// ince düşünene kalın girer.//

@Dark_Lord hocam teşekkür ederim. sağolasın yıldız için de. @TeRRoR çok teşekkürler hocam pull için. ben senin yerine denicem kodları. EntityState neden kullanıyorum bilmiyorum. sanırım tutoriallardan kalma bi alışkanlık. tavsiyeler için de ayrıca teşekkürler. Rica ederim hocam. fazlada kodlarını kurcalamak istemedim. yine aklına takılan yerlerde yazarsan pullrequestle ilerleriz. bence güzel ve eğitici bir yntem seçmişsin kendine. hem ihtiyacı karşılayan birşey yapıyorsun. hemde ğreniyorsun. ilerleyen dnemde webapi ekleyip mobil'de ğrenebilirsin bu proje ile. herkes programcı olmak zorunda değildir, lütfen bir zorunluluk gibi programlama dilleri ğrenmeye çalışmayın. yabancı dil filan ğrenin amq.// s. kimin etini yerim, kasaba minnet etmem.// ince düşünene kalın girer.//

hocam güzel fikir. unit test ile ilgili bildiğim tek şey swift tutoriallarından üstünkrü anladığım kadarıyla program içerisinde her methoda karşılık gelen, veri girişini veya o fonksiyon her ne yapıyosa onu simule edecek kontrol fonksiyonları yaratmak ve parametre girerek veya girmeyerek beklenen sonucu vermesini sağlamak. uygulama içerisine eklemek istediğim ve benim günlük kullanımımı kolaylaştıracak bi kaç ufak blüm daha var güncelleme vs gibi. onların ardından unit test kısmına girişebilirim. başlangıç için nerebileceğin dküman, video vs varsa seve seve incelerim hocam. Hocam benimde unit test'im çok zayıf o konuda direk ynlendiremem ancak. İngilizcen varsa internette zilyon tane rnek var. Sorun yaşarsanda yine beraber bakarız. herkes programcı olmak zorunda değildir, lütfen bir zorunluluk gibi programlama dilleri ğrenmeye çalışmayın. yabancı dil filan ğrenin amq.// s. kimin etini yerim, kasaba minnet etmem.// ince düşünene kalın girer.//

@TeRRoR hoca sağolasın. bilen kişilerden destek grünce devam etme isteği geliyo ister istemez. @Hannibal_King eyv hocam. bi kaç küçük ekleme çıkarmadan sonra unit test olayına da bakıcam. kavrayıp yapabildiklerimi anladığım kadarıyla burdan açıklamaya çalışırım. Abizittin tarafından 16/Eyl/17 01:26 tarihinde düzenlenmiştir

Veritabanını atar mısın hemen kendi localimde halledeyim iç içe sorgu olunca sanırım sıkıntı oldu. Bu gece halllederim. Sen at burdan veritabanını mümkünse script olarak atarsan guzel olur

Attım bir pull request TeRRoR hocam.

Soru-1: Action method dan view a nasıl veri aktarabilirim? Cevap-1: Bunun 3-4 farklı yolu var. Sen kendi kodunda sürekli olarak View metodunu View parametreli versiyonu ile çağırmışsın. Yani view a bir model gnderiyorsun. Sonrada o modele viewda erişiyorsun. Bu yntemlerden 1 tanesi. Bunun dışında ViewData ve ViewBag de kullanabilirsin. https://www.infragistics.com/community/blogs/dhananjay_kumar/archive/2015/11/06/what-are-viewdata-viewbag-and-tempdata-in-asp-net-mvc.aspx bu linkten bakabilirsin. TempData başka birşey. Linkte oda anlatılmış. Diyelim bir action method içinde veritabanından 3 tane farklı veri cektin. Antremanlar, Hocalar, Gittiğin günler mesela bu 3 unu cektin Burada bunlardan Antremanları view methoduna parametre olarak gecebılırsın. Hocalar ve Gittiğin günleride ViewBag ile view e gnderebilirsin. Yani istersen Viewbag, ViewData ve View i kullanarak view e veri atayabilirsin. Soru-1-a) View kullanmasam sadece View yazsam veritabanından cektiğim 3 veri listesinide ViewBag ile gndersem olur mu? Cevap-1-a) Evet olur. Action metodu acarsın verileri cekersın. Sonra View in üzerine ViewBag. antremanlar = tumAntrenmanlar; ViewBag. hocalar = tumHocalar; ViewBag. gunler = gittiğimGunler; Bunları yazarsın sonra. cshtml dosyanda @viewbag. hocalar dersin mesela erişirsin. Soru-1-b) Viewbag ve viewdata kullanmak istemiyorum ben illaki View şeklinde verileri view a aktarıcam ama 3 tane farklı listem var nasıl yapıcam? Cevap-1-b) Projene ViewModels isminde bir klasr ekle içerisinede bi sınıf ekliycez sınıfın ismi DashboardVerileri olsun bu sınıfın 3 tane veri elemanı olsun. Bunlar List<Hocalar> hocList, List<Antremanlar> antList, List<GittigimGunler> gunList olsun mesela sonra action method içinde hemen methodun başında DashboardVerileri dv = new DashboardVerileri ; diyerek nesneni yarat. Sonra dv. hocList = hocalarigetir ; dv. antList = antremanlarıgetir ; dv. gunList = gunlerigetir ; return View ; Şimdi sen ne yaptın ihtiyacın doğrultusunda bir sınıf yarattın. Onuda projende ViewModels klasrünün içine koydun. Yani aslında DashboardVerileri isminde bir tablon var mı veritabanında? Hayır yok. Ama View a farklı farklı verileri gnderme ihtiyacı hissettin. Bu yüzden bir sınıfta bu verileri topladın. Aslında bu sınıfa DashboardVeriViewModel desek daha anlamlı olur. Ek bilgi: View methodunun overloadları https://msdn.microsoft.com/en-us/library/system. web. mvc. controller. view(v=vs.118).aspx Soru-2: Action method çalışmadan hemen nce onun parametrelerine erişmek ve onları kontrol etmek istiyorum. Nasıl kontrol edebilirm? Method içinde kontrol etsem olur mu işe yarar mı? Cevap-2: Hayır method içinde kontrol edersen işe yaramaz zaten programın akışı o noktaya gelmeden patlıyor. int id demişsin ama id değerine null gnderiyorsun. Bununda şuan aklıma gelen 2 çzümü var. Basit çzüm: int? id yazman lazım yani sadece int in sonuna 1 adet soru işareti koyucaksın. Yani sen int? yazdığında sanırım derleyici onu Nullable<T> türünden bir yapıya dnüştürüyor. Ve artık id ye erişmek istediğinde nce kontrol ediceksin if şeklinde action methodun içinde kullanabilirsin. Uzun çzüm: Asp. net mvc de filters isminde bir konu var. Yani filtreler. Filtreler bir çeşit zel attributelar. Sen bir action methodun çalışmasından hemen nce çalışacak bir filtre yazabilirsin. Bu çzümde daha fazla şeyi kontrol edebilirsin tabi. Mesela id nullsa ve 200-300 arasındaysa method çalışmaz. Sadece id değeri 1-100 arasındaysa çalışır mesela byle şeyleri ayarlayabilirsin. Soru-3: dbContext. SaveChanges hangi durumlarda çağrılmalı? Cevap-3: Duruma gre değişir. Birbiri ile bağlantılı tablolar vardır. Araya transaction falanda koyarsın. nce bi tabloya veri eklenmesi gerekiyodur. Eklenen verinin id değerine ihtiyacın olacaktır. Bu tarz durumlarda savechanges i 2 defa cagırabılırsın mesela. Gerçi 1 kere çağırsanda sorun olmayabılır. Senin uygulama için en sonda 1 kere çağırsan yeterli gibi duruyor. Soru-4: View dan Controller a veri aktarma nasıl yapılır? Cevap-4: Zaten model yntemini biliyorsun. Bunun haricinde html elemanlarının name isimli attribute una bir isim yazıyorsun. Diyelim 3 adet input type="text" var. Bunların name attributelerıne birer isim ver. Sonra action method içinde bu isimleri argüman olarak yazıcaksın. Mesela public actionresult methodadi(string isim1, string isim2, string isim3) bu şekilde viewden gelecek olan verileri yakalayabilirsin. Ayrıca action method içinde Request. Form ; yazarsanda yakalarsın view dan gelen veriyi.1 tane daha yntem vardı sanırım şimdi aklıma gelmedi. Soru-5: neriler Cevap-5: C# bilgini artırmaya çalış. Fonksiyon kelimesini unut, c# ile çalışırken method kelimesini kullanıyoruz. C ile çalışsaydık o zaman fonksıyon diyecektik. kod yazma standartı, dizayn patternı vs o konularda çok fazla bilgim yok.

In Linq-to-Entities you can only project to an anonymous type or a regular class. You can't project to an existing entity type. Hocam hatayı anladım. Şimdi halledicem. Viewmodeli değiştiricem. Koduda değiştiricem.