Mam zamiar wdrożyć MvcMusicStore przy użyciu ASP.NET MVC3, klasy Linq to Sql zamiast Entity Framework, MS SQL Server 2008 pro zamiast express ed.

Samouczek otrzymałem ze strony mvcmusicstore.codeplex.com

Użyłem klasy Linq to Sql, a Datacontext to MvcMusicSrotedataContext. Kiedy próbuję stworzyć nową klasę za pomocą tego

image

Pokazuje błąd w nowym oknie po kliknięciu przycisku dodawania Błąd: „Nieobsługiwany typ kontekstu

Czy możesz mi pomóc rozwiązać ten problem? Dziękuję.

3
arefinsami 24 wrzesień 2012, 00:17

2 odpowiedzi

Najlepsza odpowiedź

Wbudowane szkieletowanie MVC nie obsługuje Linq to SQL — zamiast tego musisz użyć Entity Framework. (Lub nie używaj rusztowania, zbuduj własny kontroler/logikę akcji ręcznie. Lub użyj wtyczka rusztowania obsługująca Linq to SQL.)

2
McGarnagle 24 wrzesień 2012, 09:32

Mam ten sam problem z EF. Używam VS 2012.

Tło:

Powodem mojego przypadku było to, że ten proces automatycznego generowania (rusztowanie) wydaje się nie rozpoznawać koncepcji klasy częściowej.

Użyłem pierwszego podejścia modelowego i zastosowałem dziedziczenie z encjami. Np. encja „B” i „C” jest dziedziczona z „A”

Tak więc w mojej wygenerowanej klasie modelu „DataModelContainer”, która jest dziedziczona z „DbContext”, nie ma definicji „DbSet” i „DbSet” tj. nie było dwóch następujących linii

public DbSet<B> B { get; set; }
public DbSet<C> C { get; set; }

Wygenerowałem klasę „DataModelContainer” I klasę częściową, więc drugą część uzupełniłem, używając pojęcia klasy częściowej. A to byłby problem dla Scaffoldingu.

Rozwiązanie

Moje obejście polegało na usunięciu częściowej klasy, którą dodałem ręcznie. I dodał definicje „DbSet” i „DbSet” do automatycznie generowanej klasy. Problem z tym rozwiązaniem polega na tym, że muszę powtórzyć to samo, gdy regeneruję klasy modelu.

2
jgauffin 27 czerwiec 2013, 12:20