EF代码首先无法在非复合null对象上提交



我当前首先使用SQL Server使用EF代码。

这是我的代码:

public class Article
{
    public Article(string title, ValidPeriod published)
    {
        this.Title = title;
        this.Published = published;
    }
    public int Id { get; set; }   
    public string Title {get;set;}
    public ValidPeriod Published { get; set; }
}
public class ValidPeriod()
{
    public DateTime From { get; set; }
    public DateTime To { get; set; }
}

我能够创建一个文章类的实例,但是当我尝试坚持使用Null Viralperiod的文章时,我将获得"无效成员的零值"。我该如何解决此问题,即。如何坚持一个零类。我没有将有效的period声明为复杂的对象。

一种可能的解决方案是首先定义ValidPeriod实体的主键Id如下:

public int Id { get; set; }

然后,将明确的无效外键添加到Article Entity(int?为nullable int):

public int? ValidPeriodId { get; set; }

最终使用Fluent API定义Article实体的关系:

HasOptional(c => c.Published)
                .WithMany()
                .HasForeignKey(c => c.ValidPeriodId);

最新更新