エンティティ フレームワークでさらに問題が発生しています。そのうちの 1 つがここで解決されましたエンティティ フレームワーク 複数のテーブル 同じ名前
テーブルboまたはテーブルbiに挿入しようとすると、次のエラーが発生します。
{"列名 'Bo_obrano' が無効です。\r\n列名 'Bo_boano' が無効です。\r\n列名 'Bo_ndos' が無効です。"}
また
{"Invalid column name 'Bi_bistamp'}
電動工具を使用してデータベースをリバース エンジニアリングしたため、bo のマッピングは次のようになりました。
public boMap()
{
// Primary Key
HasKey(t => new { t.obrano, t.boano, t.ndos });
Property(t => t.obrano)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
Property(t => t.boano)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
Property(t => t.ndos)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
}
そして、このようなbiマッピング:
public BiMap()
{
// Primary Key
HasKey(t => t.bistamp);
....
私のコンテキストクラスは次のようになります:
public class PHCDbContext:DbContext
{
//classes mapeadas via reverse
public DbSet<Bi> DadosLinhasEncomendas { get; set; }
public DbSet<Bo> DadosCabecalhosEncomendas { get; set; }
...
public PHCDbContext(string connection):base(connection)
{
Database.SetInitializer<PHCDbContext>(null);
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Configurations.Add(new BiMap());
modelBuilder.Configurations.Add(new boMap());
....
ここで指示されているように、マッピングを エクスポートしました: コードの最初のモデル マッピングをエクスポートします。
私が見つけたのは、それらのフィールド自体は存在しないということです。Visual Studio で edmx ファイルを開くと、これらのフィールドがクラスのナビゲーション プロパティ、モデルの関連部分にあることがわかりました。外部キーではなく、テーブルの主キーを表します。しかし、それらは poco クラスのどの値にもマッピングされていません。データベース内の任意の列にははるかに少ない。どうすればこれを解決できますか?事前に感謝します