私の "UserAccount"エンティティ/クラスの "Username"プロパティにUNIQUE制約を追加しようとしています。コードファーストでは問題ありませんが、モデルファーストでは、これを達成する方法を見つけることができません。 デザイナーはこの機能をサポートしていません。エンティティクラスは自動生成されるため、アノテーションは使用できません。 OnModelCreating()メソッドがモデルファーストで呼び出されていないため、DbModelBuilderインスタンスがないため、Fluent APIを使用できません。 私が考えることができるのは、UNIQUE制約を作成するアプリケーションの開始時に何らかの手動SQL文を実行することだけです。これはEFの目的を無効にします。 は、ここに私の現在のDbContextクラスである:Entity Frameworkモデルfirst:プログラムでUNIQUE制約を作成します。
public partial class UserAccountsModelContainer : DbContext
{
public UserAccountsModelContainer()
: base("name=UserAccountsModelContainer")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
public virtual DbSet<UserAccount> UserAccounts { get; set; }
}
私もそれが自動生成されますので、UserAccountのクラスを投稿する気にしないだろうと私はDbContextも自動生成であることを知っている(変更すべきではありませんそれを変更することは可能です)。 これについての助けに感謝します!
モデルは最初にコードの方が先に死んでいます。あなたが本当に運が良ければ、誰かが多かれ少なかれ実用的な解決策を求めて来るでしょうが、あなたのプロジェクトのために最初にモデルから離れる可能性があるかどうかを強く考えてください。 – grek40
既にそれで始まっています;) 私はちょうどそのような単純な仕事がモデルファーストで統合されたとは信じられません。 – Cleo