2017-02-21 2 views
0

у меня есть 2 моделиКак обращаться с добавлением entites со связанными лицами

public class Licence 
    { 
    public int Id { get; set; } 

    public int CustomerId { get; set; } 

    public Customer Customer { get; set; } 
    } 

    public class Customer 
    { 
    public int Id { get; set; } 

    public int LicenceId { get; set; } 

    public virtual Licence Licence { get; set; } 
    } 

Я хочу создать свою лицензию с существующим клиентом

[HttpPut] 
public IActionResult CreateLicence([FromBody]Licence licence) 
{ 
    Context.Add(licence); 
    Context.SaveChanges(); 

    return Ok(licence); 
} 

У меня есть несколько вариантов сейчас:

1. Я могу инициализировать LicenceId на Frontend с помощью

Licence.CustomerId = (Selected Customer.CustomerId) 

2.I может инициализировать лицензию на Frontend с

Licence.Customer = (Selected Customer Object) 

Когда я делаю 2 Мне нужно extesion METHODE, который я написал, чтобы игнорировать навигационные свойства, которые alreasy существует. Мне лично нравится 2 из-за его меньшего кода, а также создаю эти свойства навигации самостоятельно.

public int CustomerId {get; задавать; }

Может ли кто-нибудь сказать мне, как правильно это сделать? 1. или 2?

ответ

0

Это то, что я получил от вашего вопроса: вы хотите сохранить объект лицензии, но добавив в него «CustomerID», поскольку в таблице License будет IDID как внешний ключ.

Если я правильно понял, вы должны пойти с подходом 1. Навигационное свойство полезно при чтении данных. Или, если вы собираетесь создавать дочерние данные, вам необходимо заполнить соответствующие свойства навигации.

Смежные вопросы