.. Здравствуйте, я знаю, что уже было много вопросов по этому поводу, но все равно не могу понять это правильно, несмотря ни на что.
Мне нужно много ко многим с пользовательской таблицей соединений, но каждый раз, когда я пытаюсь получить коллекцию, она все еще пуста.
Первый класс:
public class Test1 {
[Key]
public int id { get; set; }
public virtual ICollection<TestToTest> others { get; set; }
public Test1() {
others = new HashSet<TestToTest>();
}
}
Второй:
public class Test2 {
[Key]
public int id { get; set; }
public virtual ICollection<TestToTest> others { get; set; }
public Test2() {
others = new HashSet<TestToTest>();
}
}
И таблица соединений:
public class TestToTest {
[Key]
public int id { get; set; }
[ForeignKey("Test1")]
public int test1Id { get; set; }
[ForeignKey("Test2")]
public int test2Id { get; set; }
public virtual Test1 test1 { get; set; }
public virtual Test2 test2 { get; set; }
}
Но все же, когда я пытаюсь получить один из них с запросом вроде:
var cont = new MyContext(); //DbContext
Test1 t1 = cont.test1.Find(1); // Fetches first class ok
var tt = t1.others; // Empty array
Я действительно понятия не имею, что еще мне там не хватает, чтобы заставить его работать.
Если я добавлю новый в контекст, тогда все будет в порядке ... до тех пор, пока он кешируется -> и записывает строку в БД. Но после перезапуска (без какого-либо кеша в контексте) поле «другие» всегда пустое.
Спасибо за любую помощь заранее.