Entity Framework Как установить связь между двумя столбцами двух таблиц - PullRequest
0 голосов
/ 02 декабря 2019

Есть две сущности A и B. У них есть отношения один ко многим. Предположим, что A является следующим типом.

class A
{
        public int Id { get; set; }
        public bool isActive{ get; set; }
        public ICollection<B> BCollection{ get; set; }
        //Rest Of A properties
}

class B
{
        public int Id { get; set; }
        public A A{ get; set; }
        public int AId{ get; set; }
        public bool isAActive{ get; set; }
        //Rest of B Properties
}

S в B AId - это внешний ключ первичного ключа Id в A. Эта структура сущности настроена сама по себе из-за наличия экземпляра A в B.

Есть ли способ через структуру сущностей, чтобы я мог настроить свой DBSet так, чтобы значение isAActive автоматически устанавливалось в зависимости от значения isActive в A?

1 Ответ

1 голос
/ 02 декабря 2019

не уверен, что это именно то, что вы ищете, но использование конструктора может быть полезным

public  class A
{
    public int id { get; set; }
    public bool isActive { get; set; }
    public List<B> BCollection { get; set; }
}

public class B
{
    public B (A a){
        isAActive = a.isActive;
        }
    public int id { get; set; }
    public A A { get; set; }
    public bool isAActive { get; set; }
}

static void Main(string[] args)
{
    A a = new A()
    {
        id = 1,
        isActive = true
    };
    A a2 = new A()
    {
        id = 2,
        isActive = false
    };

    List<B> bs = new List<B>()
    {
        new B(a) { id = 100, A = a},
        new B(a) { id = 200, A = a}
    };
    a.BCollection = bs;

    List<B> bs2 = new List<B>()
    {
        new B(a2) { id = 300, A = a2},
        new B(a2) { id = 300, A = a2}
    };
    a2.BCollection = bs2;

    return;
}

a.BCollection будет иметь значение isAActive равное true
a2.BCollection будет иметьisAActive установлено в false

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...