. Мы знаем, что нам не нужно настраивать отношения «один ко многим», используя «Аннотации данных», отношения «один ко многим», настроенные по соглашению.Код EF сначала. Определите свойство отношений «один ко многим» для заданного типа.
В следующем примере ICollection<Student> Students
это свойство отношения
public class Student
{
public Student() { }
public int StudentId { get; set; }
public string StudentName { get; set; }
public virtual Standard Standard { get; set; }
}
public class Standard
{
public Standard()
{
Students = new List<Student>();
}
public int StandardId { get; set; }
public string Description { get; set; }
public virtual ICollection<Student> Students { get; set; }
}
Так что мой вопрос, как я могу обнаружить отношения propertys для данного типа? Моя цель состоит в том, чтобы проверить значение свойства и сколько элементов содержит
Что-то вроде этого:
static void Test(object givenInstanse)
{
foreach (PropertyInfo p in TryGetOneToManyRelationshipsPropertys(typeof(givenInstanse), dc))
{
var val = (ICollection)p.GetValue(givenInstanse);
Console.WriteLine(val.Count);
}
}
static IEnumerable<PropertyInfo> TryGetOneToManyRelationshipsPropertys(Type t, DbContext dc)
{
// ...
}
В соответствии с соглашением другой тип не может иметь Свойство этого типа, другой тип может иметь только id Свойство. – codeDom
@codeDom вы можете следовать той же логике, чтобы проверить, существует ли свойство с именем 'ClassName + Id' в обоих типах, если первая проверка не удалась. – user3185569
@codeDom проверить обновленный ответ. – user3185569