MVC3 Как передать и назначить поле FK от одной модели к другой - PullRequest
0 голосов
/ 24 марта 2012

У меня две модели

Первая модель

public class Company
{        
   public int Id { get; set; }
   public string CompanyName {get;set;}
   public virtual ICollection<Member> Member { get; set; }
}

Вторая модель

public class Member
{
   public int Id { get; set; }
   public string Name { get; set; }
   public virtual Company Company { get; set; }
}

Таким образом, компания может иметь много членов

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

Вот что я делаю: Id - это идентификатор компании, который передается через ActionLink. Идентификатор, который я проверил, имеет значение. Сбой, когда я хочу присвоить идентификатор для company_Id участника (FK)

    [HttpPost]
    public ActionResult Create(Member m, int id)
    {
        if (ModelState.IsValid)
        {
            **m.Company.Id = id;**
            db.Member.Add(m);
            db.SaveChanges();
            return RedirectToAction("Index");  
        }
    }

Когда создается таблица элементов, поля, которые она создает Идентификатор, имя, Company_Id (FK)

Что я делаю не так? Как назначить companyId для Company_Id участника (FK)?

Спасибо

1 Ответ

0 голосов
/ 24 марта 2012

Я думаю, что Компания является нулевой, и именно поэтому.Сделайте это:

public class Member
{
   public int Id { get; set; }
   public string Name { get; set; }
   public int CompanyId Integer { get; set; }
   public virtual Company Company { get; set; }
}

и в вашем действии напишите:

//...
m.CompanyId = id;
//...

Это должно сработать.Если вы хотите узнать больше об этом, поищите свойства навигации и свойства внешнего ключа.

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