powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / multiply context (Entity FrameWork, Code First)
1 сообщений из 1, страница 1 из 1
multiply context (Entity FrameWork, Code First)
    #38589580
xslowMorph
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
В проекте используется несколько контекстов, для разделения предметной области.
Есть базовые классы, которые используется в нескольких контекстах одновременно.

Проблема заключается в том, что нужно одновременно использовать в двух контекстах, один класс, в котором определены fk и описаны навигационные свойства.

Описать все зависимые таблице как базовые классы не имеет смысла, т.к. практически каждая таблица имеет ссылки.

Важно отметить что использовать навигационные свойства, нужно лишь в одном контексте, в другом контексте они не нужны.

Проблема состоит в том как это реализовать.

Можно привести пример:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
[Table("Persons")]
public class PersonBase
{
   public int Id {get; set;}

   public string Name {get; set;}

   public int PositionId {get; set;}
}



public class Position
{
   public int Id {get; set;}
   public string Title {get; set;} 
}

public class Person : PersonBase
{
   public virtual Position Position { get; set;}
}


public class PersonFinancialModel  : PersonBase
{

}

public class LegalEntity
{
   public int Id {get; set;}
   public int Name {get; set;}
   public int PersonId {get; set;}
   public virtual PersonFinancialModel Person {get; set;}

}



Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
public MainContext : DbContext{

    public DbSet<Person> Persons {get; set;}
    public DbSet<Position> Positions {get; set;}
}

public FinancialContext : DbContext{
   public DbSet<PersonFinancial> PersonFinanciales {get; set;}
   public DbSet<LegalEntity> LegalEnities {get; set;}
}



т.е. в FinancialContext нам не важно знать, что у LegalEnitity есть навигационное свойство Position

проблема заключается в том, что компилятор не позволяет реализовать подобное.
можно ли это как-нибудь обойти и реализовать?
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / multiply context (Entity FrameWork, Code First)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]