虽然我已经用 标记了我的 ID 列.Identity()
,但生成的数据库架构没有IDENTITY
设置为 true,这在我添加记录时给我带来了问题。如果我手动编辑数据库架构(在 SQL Management Studio 中)以将Id
列标记为IDENTITY
,那么一切都会按我的意愿进行 - 我不能让 EF 自己做到这一点。
这是我的完整映射:
public class EntryConfiguration : EntityConfiguration<Entry>
{
public EntryConfiguration()
{
Property(e => e.Id).IsIdentity();
Property(e => e.Amount);
Property(e => e.Description).IsRequired();
Property(e => e.TransactionDate);
Relationship(e => (ICollection<Tag>)e.Tags).FromProperty(t => t.Entries);
}
}
当我使用 EF 构建和重新构建数据库以进行集成测试时,我真的需要自动完成此操作......
编辑: 嗯......在评论中,我被要求提供足够的代码来执行这个,所以我将我的代码剪切并粘贴到一个控制台应用程序中(这样你就不需要我所有的课程......)突然间刚刚工作。我想我在某处忘记了一些方法调用,尽管我无法弄清楚在哪里。
我将在此帖子的答案中发布有效的解决方案代码,以防其他人来寻找它。