创建Web API的好方法2&基于EF的系统

时间:2015-07-30 14:27:00

标签: c# entity-framework asp.net-web-api2

我正在创建一个基于Entity Framework的Web API 2应用程序。我的问题是关于创建Web API 2&基于EF的系统。

假设我的课程Payment包含课程Address

public class Payment()
{
    public string Id { get; set; }
    public string Name { get; set; }
    public decimal Amount { get; set; }
    public Address PaymentAddress{ get; set; }
}

public class Address ()
{
    public string StreetName{ get; set; }
    public string City{ get; set; }
}

问题1:

我的Web API是否应该允许从端点PUT / payment(我的意思是更改Address的属性而不是整个对象)更改Address,称为解决方案1 ​​

问题2:

或者PUT /付款应该只更新Payment没有Address属性的简单属性?在这种情况下,Address属性可能会被端点PUT / payments / {paymentId} /地址(称为解决方案2)更改?

问题3:

目前我已经实施了解决方案1,但我在使用更新的Payment属性为Address更新正确设置上下文时遇到问题。我必须手动更改Address的EF状态值。如果解决方案2能解决我的问题吗?

问题4

默认情况下,自动定义EF一对多关系,就像在我的示例中一样。但我可以使用ForeignKey属性标记列作为外键。为什么这个解决方案更好?有什么帮助吗?

public class Payment()
{
    public string Id { get; set; }
    public string Name { get; set; }
    public decimal Amount { get; set; }

    public int AddressId{ get; set; }
    [ForeignKey("AddressId")]
    public Address PaymentAddress{ get; set; }
}

0 个答案:

没有答案
相关问题