だから私はEFを使用してカスタムメンバーシップを構築しようとしています。私は自分が何をしているのか本当にわかりませんが、これまでのところかなりスムーズに進んでいます。
私はデータベースイニシャライザーのステップにいます。プロジェクトが実行されるとすぐにデータベースにデータをダンプしようとしています。以下に示すように、私のクラスApplication.cs
はGUIDを主キーとして使用します。そのGUIDをデータベースに追加する方法を理解しようとしています。
これが可能かどうかはわかりませんが、これが私がやろうとしていることです。VS 2012で通常のWebアプリケーションプロジェクトを作成し、EFコードファーストを使用してそのデータベースを再作成しようとしたときに取得するデフォルトのログインデータベースを使用しました(練習用)。これは私がこれまでに得たものです。
クラス
public class Applications
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid ApplicationId { get; set; }
[StringLength(125)]
public string ApplicationName { get; set; }
}
ビルド時にデータをdbにダンプするイニシャライザー(シードを含まない)
private static List<Applications> addApplications()
{
var apps = new List<Applications>
{
new Applications
{
ApplicationId = Guid.NewGuid(),
ApplicationName = "Test Login"
}
};
return apps;
}
private static List<Memberships> addMemberships()
{
var mem = new List<Memberships>
{
new Memberships
{
UserId = Guid.NewGuid(),
ApplicationId = ?, // How can this guid Match the one in
// in ApplicationId for the Application Table?
}
};
return mem;
}
「InvalidInitializermemberdeclarator」が表示されます。私が直面している問題は、GUIDがApplicationId
複数のテーブル間で同じである必要があることです。これが可能かどうかさえわかりませんか?
どういうわけか共有しなきゃいけない気がした
Guid AppId;
AppId = Guid.NewGuid();