Я проектирую архитектуру проекта .Net в C #.
Я буду использовать EF.
Я хочу установить шаблонную архитектуру MVC.
Хотя я начну с первой реализации модели, мне, возможно, придется использовать другие модели, которые будут очень похожи на оригинальную.
Я, очевидно, хочу реализовать один бизнес-уровень, который в идеале работал бы с обеими реализациями Model.
Так что я полагаю, что в какой-то момент мне придется интенсивно полагаться на интерфейсы.
ОБЫЧНО, я строю свои сущности и контекст таким образом:
public class Foo
{
public int Id { get; set; }
public string Name { get; set; }
... other properties
}
public class Bar
{
public int Id { get; set; }
public string Name { get; set; }
public virtual Foo Fooo { get; set; }
... other properties
}
...
public class MyContext : DbContext
{
...
}
Теперь в моем случае, скажем, две разные модели.
Помимо ранее написанных классов Foo и Bar, у меня будет:
public class Foo2
{
public int Id { get; set; }
public string Name { get; set; }
... other properties
}
public class Bar2
{
public int Id { get; set; }
public string Name { get; set; }
public virtual Foo Fooo { get; set; }
... other properties
}
...
public class MyContext2 : DbContext
{
...
}
Теперь, как установить один бизнес-уровень, который может работать с MyContext или MyContext2?
Полагаю, первым шагом является создание интерфейсов для For Foo / Foo2 и Bar / Bar2:
public interface IFoo
{
int Id { get; set; }
string Name { get; set; }
}
public interface IBar
{
int Id { get; set; }
string Name { get; set; }
IFoo Fooo { get; set; }
}
Тогда что ????