我目前首先使用EF代码与SQL Server。
这是我的代码:
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; }
}
我能够创建一个Article类的实例,但是当我尝试使用null ValidPeriod持久保存文章时,我得到“非可空成员的空值”。我该如何解决这个问题,即。如何保持null类。我没有将ValidPeriod声明为复杂对象。
一种可能的解决方案是首先为Id
实体定义主键ValidPeriod
,如下所示:
public int Id { get; set; }
然后将一个显式可空的外键添加到Article
实体(int?
作为可空的int
):
public int? ValidPeriodId { get; set; }
最后使用流畅的api定义Article
实体的关系:
HasOptional(c => c.Published)
.WithMany()
.HasForeignKey(c => c.ValidPeriodId);