【发布时间】:2017-03-14 19:53:56
【问题描述】:
我有实体
public class Realtor
{
[Key]
public int Id { get; set; }
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid Guid { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public DateTime Registration { get; set; }
[ForeignKey("Id")]
public int SubdivId { get; set; }
public Subdiv Subdiv { get; set; }
}
和 OnModelCreating 方法的上下文
modelBuilder.Entity<Realtor>(real => {
real.Property<Guid>(p => p.Guid)
.HasDefaultValueSql("newsequentialid()");
real.Property<DateTime>(p => p.Registration)
.HasDefaultValueSql("getdate()");
real.HasOne(r => r.Subdiv)
.WithMany(s => s.Realtors)
.HasForeignKey(r => r.SubdivId);
});
我为属性注册设置了默认值,但是当我进行插入时,我得到了异常:无法将值 null 插入到列注册中。
【问题讨论】:
-
为什么你有一个 DateTime 作为身份?那不应该在那里,为什么你同时有一个 Guid 和一个 Id,并试图同时制作身份?
-
如何为不可为空的
DateTime属性设置null值?更有可能是[DatabaseGenerated(DatabasegeneratedOption.Identity)]属性。我想Identity不是为DateTime值定义的,而只是int。 -
也许我尝试删除
-
您在进行代码优先迁移吗?
-
@你在做代码优先迁移@是的。
标签: c# .net entity-framework