Próbuję wzbogadzić swoją wiedzę o EntityFrame ze szczególnym jego wykorzystaniem w WPF MVVM. Na pluralsight znalazłem taki kurs:
Building an Enterprise App with WPF, MVVM, and Entity Framework Code First.
Nie wiem czy ktoś ma do niego dostęp I mógłby mi wyjaśnić jedną rzecz, ponieważ dostaje błąd którego nie do końca rozumiem, a jestem prawie pewien, ze mam wszystko dokładnie tak samo jak w kursie.
Sprawa sprowadza się do tego.
W App.xml.cs
Jest zrobiony even który odpali nam główne okno.
private void Application_Startup(object sender, StartupEventArgs e)
{
var mainWindow = new MainWindow()
new MainViewModel(
new FriendDataService()));
}
Konstruktor głównego okna wygląda następująco:
public MainWindow(MainViewModel viewModel)
{
InitializeComponent();
_viewModel = viewModel;
DataContext = viewModel;
Loaded += MainWindow_Loaded;
}
Konstruktor ViewModelu wygląda tak:
public MainViewModel(IFriendDataService friendDataService)
{
_friendDataService = friendDataService;
}
Błąd który dostaje:
Error 2 Argument 1: cannot convert from 'FriendOrganizer.UI.Data.FriendDataService' to 'FriendOrganizer.UI.Data.IFriendDataService'
I błąd wydaje mi się, ze rozumiem, konstruktor ViewModelu
przyjmuje argument Interface
ale w evencie jest tam wstawiana klasa.
Jedyną rzecza którą nie mogłem zrobić dokłądnie tak jak w kursie jest extract interface
, mam VS 2013 express i tego tam podobno nie ma. Więc co zrobiłem stworzyłem sobie wszystko tak jak ta osoba ma w projekcie:
public class FriendDataService
{
public IEnumerable<Friend> GetAll()
{
//TODO: Load data from real Server
yield return new Friend { FirstName = "Tomek", LastName = "Lis" };
yield return new Friend { FirstName = "Norbert", LastName = "Skarus" };
yield return new Friend { FirstName = "Michał", LastName = "Świniarski" };
yield return new Friend { FirstName = "Jeremiasz", LastName = "Zielonkiewicz" };
yield return new Friend { FirstName = "Adam", LastName = "Stelmaszuk" };
}
}
W kursie jak pojawił się ta cześć kodu, osoba prowadząca wyekstraktowała interface z FriendDataService
. Tak jak wspomniałem ja takiej opcji nie mam więc zrobiłem dokłądnie taki interface jak on prezentował:
public interface IFriendDataService
{
IEnumerable<Friend> GetAll();
}
Nie mniej może, extractując Interface dzieje się coś w tle czego ja nie widzę, co powoduje mój błąd.
Mam nadzieję, że dokładnie opisałem mój problem.
Będę wdzięczny za pomoc.