ID列にをマークしましたが.Identity()
、生成されたデータベーススキーマがtrueに設定されていないためIDENTITY
、レコードを追加するときに問題が発生します。(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を使用して統合テスト用のデータベースを構築および再構築しているので、これを自動的に実行する必要があります...
編集: うーん...コメントで、これを実行するのに十分なコードを提供するように要求されたので、コードをコンソールアプリにカットアンドペーストして(すべてのクラスが必要になるわけではありません...)、突然それを実行しましたちょうど働いた。どこにあるのかわからなかったのですが、どこかでメソッド呼び出しを忘れていたのではないでしょうか。
他の誰かが探しに来た場合に備えて、この投稿への回答で実用的なソリューションコードを投稿します。