добавление отношения многие ко многим между двумя объектами в ASP.NET - PullRequest
0 голосов
/ 27 августа 2018

Я подаю заявку на эти две модели

public class Operator
{
    //attributes
    public virtual ICollection<Merchant> Merchants { get; set; }

}

public class Merchant
{
    //attributes
    public virtual ICollection<Operator> Operators { get; set; }
}

код первый подход с этим производным классом DbContext.

 public class ContextClass : DbContext
 {
     public ContextClass() : base("name=DefaultConnection")
     {

     }
     public virtual DbSet<Operator> Operators { get; set; }
     public virtual DbSet<Merchant> Merchants { get; set; }
    //public object Merchant { get; internal set; }
}

Я установил соединение в базе данных и успешно запустил процесс заполнения. теперь я пытаюсь создать новое отношение между двумя другими объектами, которые не имеют отношения, используя эту функцию

ContextClass _db = new ContextClass();
public bool createRelationShip(int MerchantId, int OperatorId)
    {
        var _mm = new MerchantManager();
        var _om = new OperatorManager();
        var _merchat = _mm.GetMerchant(MerchantId);//gets merchant object 
        var _operator = _om.GetOperator(OperatorId);//gets operator object 
        if (_merchat != null && _operator != null)
        {

            _merchat.Operators.Add(_operator);//supposed to create relationship
                                            //the same way as I did in seeding
             _db.Merchants.Add(_merchat);
            //what next??
            return true;
        }
        return false
    }

Я не могу понять, как добавить связь в базу данных.

1 Ответ

0 голосов
/ 27 августа 2018

Вы пытаетесь добавить продавца с идентификатором, который уже существует. Вы установили отношения с

_merchat.Operators.Add(_operator);

Удалить строку

_db_Merchants.Add(_merchat);

и заменить на

_db.SaveChanges();
...