MVCミュージックストアのチュートリアルに従って、データベースにサンプルデータがシードされます。クラスは次のAlbum
とおりです。
namespace MvcMusicStore.Models
{
public class Album
{
public int AlbumId { get; set;}
// ...
}
}
次に、チュートリアルで使用されているサンプルデータクラスで、メソッドAlbum
内に次のようなオブジェクトが作成されます。Seed()
new Album { Title = "The Best Of Billy Cobham",
Genre = genres.Single(g => g.Name == "Jazz"),
Price = 8.99M, Artist = artists.Single(a => a.Name == "Billy Cobham"),
AlbumArtUrl = "/Content/Images/placeholder.gif" }
私のプロジェクトにはクラスがありますTenant
:
public class Tenant
{
[key]
public int TenantId { get; set;}
// ...
}
私のSeed()
方法では、次のようなテナントを作成します。
new Tenant { UserId=1, UserName="Matthew" /*...*/ }
私のSeed()
方法では、UserIdであるテナントPKを含めました-テナントはUserから派生しています。Seed()メソッドで、テナントのUserIdのPKが1であると明示的に言ったので、メソッドの実行時に問題が発生するのでしょうか。ミュージックストアのチュートリアルでは、作者がアルバムのPKを含めていないのでお願いします。
したがって、アルバムを作成するときにPKは明示的に指定されません。EFはデフォルトでPKを適用しますか?自分のプロジェクト用にかなりの量のサンプルデータを作成するのにしばらく時間を費やし、多くのエンティティのPKを手動で入力しました-EFはこれを受け入れますか、それとも問題が発生しますか?シードはサンプルデータを生成するための最良の方法ですか?代替手段ですか?