2017-02-21 104 views
0

我有2种型号如何处理与相关实体

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; } 
    } 

我要创造我的驾照与现有客户增加的entites的

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

    return Ok(licence); 
} 

我现在有几个选择:

1.我可以使用

Licence.CustomerId = (Selected Customer.CustomerId) 
来初始化前端上的LicenceId当我做2我需要一个extesion梅索德我写信给忽略谁alreasy存在导航性能3210

2.I可以

Licence.Customer = (Selected Customer Object) 

初始化的前端许可证。 我个人比较喜欢2,因为它的代码较小,并且由他自己创建这些导航属性。

public int CustomerId {get;组; }

有人可以说我正确的做法是什么吗? 1.还是2?

回答

0

这是我从你的问题中得到的:你想要保存许可证对象,但是通过在其中添加“CustomerID”作为许可证表将客户ID作为外键。

如果我理解你说得对:你应该采用方法1.导航属性在读取数据时很有用。或者,如果您要创建子数据,则需要填写相关的导航属性。