EFコードファーストアプローチを使いたい。
私はこの投稿を読みました:
BLクラスを作成しました
public class AppData
{
public string Id { get; set; }
public string Url { get; set; }
public AppData_OptionsDialog OptionsDialog { get; set; }
public AppData_Compatibility Compatibility { get; set; }
}
public class AppData_Compatibility
{
public int Id { get; set; }
public string Platform { get; set; }
public string MaxVersion { get; set; }
}
public class AppData_OptionsDialog
{
public int Id { get; set; }
public string DisplayName { get; set; }
public string AppDesc { get; set; }
public string PrivacyPolicyUrl { get; set; }
public string TermsOfUseUrl { get; set; }
}
public class AppsDataContext : System.Data.Entity.DbContext
{
public AppsDataContext() : base("MaMDB") { }
public DbSet<Conduit.Mam.Common.BlData.AppsData.AppData> AppsData { get; set; }
public DbSet<Conduit.Mam.Common.BlData.AppsData.AppData_Compatibility> AppData_Compatibilities { get; set; }
public DbSet<Conduit.Mam.Common.BlData.AppsData.AppData_OptionsDialog> AppData_OptionsDialogs { get; set; }
}
DBに対応するテーブルを作成しました。
EFは設定より規約を使用していることを理解しています。
それで、それは魔法のようにクラスをDBにマップしますか?emを生成する必要はありません
私はメソッドのテストを実行しようとします:
public IList<Conduit.Mam.Common.BlData.AppsData.AppData> GetAll()
{
var apps = from app in AppsDataContext.AppsData
select app;
return apps.ToList();
}
ただし、次のエラーが発生します。
モデルの生成中に1つ以上の検証エラーが検出されました。
\ tSystem.Data.Entity.Edm.EdmEntityType:名前:スキーマ内の各タイプ名は一意である必要があります。タイプ名'AppData_OptionsDialog'はすでに定義されています。\ tSystem.Data.Entity.Edm.EdmEntityType:名前:スキーマ内の各タイプ名は一意である必要があります。タイプ名「AppData_Compatibility」はすでに定義されています。
私はこの答えを見ましたが、それは私を助けませんでした