【问题标题】:How to set null foreign key in Entity Framework code-first如何在实体框架代码优先中设置空外键
【发布时间】:2017-07-16 19:32:16
【问题描述】:

我有一个订单

如何设置?当我尝试插入具有空 customerid 的用户时,它告诉我它不能为空。

型号如下:

public class Order
{
    public long OrderID { get; set; }
    public int CustomerID { get; set; }
    public virtual Customer Customer { get; set; }
    public virtual ICollection<OrderDetail> OrderDetails { get; set; }
}

public partial class Customer
{
    public int CustomerID { get; set; }   
}

DbContext

modelBuilder.Entity<Customer>()
            .HasMany(e => e.Orders)
            .WithRequired(e => e.Customer)
            .WillCascadeOnDelete(false);

【问题讨论】:

  • 你需要使CustomerID属性可以为空:public int? CustomerID { get; set; }
  • 您能否澄清您的问题,因为我不明白“用户属于一个国家,但可能不属于任何(空外键)”。这对你来说代表着什么?它与您提供的 Order 类有什么关系?请对您的问题更准确一点。或者,据我观察,您可以尝试使 CustomerID 属性为空。 (edit: 就像上面提到的@Felipe Cruze :))
  • 您在谈论用户和国家/地区的问题,但代码涉及客户和订单。对我没有意义

标签: c# entity-framework


【解决方案1】:

你试过换行吗

.WithRequired(e => e.Customer)

.WithOptional(e => e.Customer)

?

然后我将 CustomerID 属性设为可为空:public int?客户 ID { 获取;放; }

【讨论】:

    猜你喜欢
    • 2011-08-05
    • 1970-01-01
    • 1970-01-01
    • 2014-10-24
    • 2012-05-10
    • 2015-02-24
    • 2021-01-05
    • 2011-08-05
    相关资源
    最近更新 更多