#c# #model-view-controller #interface #n-tier-architecture
#c# #модель-представление-контроллер #интерфейс #n-tier-архитектура
Вопрос:
Я разрабатываю архитектуру a .Чистый проект на C #. Я буду использовать EF. Я хочу установить архитектуру шаблонов MVC. Хотя я начну с первой реализации модели, мне, возможно, придется использовать другие модели, которые будут ОЧЕНЬ похожи на исходную.
Я, очевидно, хочу реализовать единый бизнес-уровень, который в идеале работал бы с обеими реализациями модели.
Поэтому я полагаю, что в какой-то момент мне придется интенсивно полагаться на интерфейсы.
ОБЫЧНО я создаю свои сущности и контекст таким образом:
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
{
...
}
Теперь, в моем случае, у меня будет, скажем, 2 разные модели.
Поверх ранее написанных классов 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; }
}
Тогда что????