5

エンティティ フレームワークと SQL データベースに問題があります。だから私の問題はこれです:私のデータベースには同じプロパティを持つ2つのテーブルがあり、それらはタイプと長さが同じですが、まったく関係がありません。外部キーは一切ありません。データベースエンティティフレームワークとのやり取りを開始するとすぐに、有名なエラーが吐き出されます。

エラー 0019: 型の各プロパティ名は一意である必要があります。プロパティ名は既に定義されています。

ちなみに、コードファーストアプローチを使用しています。

これは、テーブルのクラス表現の 1 つです。

[Table("bo")]
public class TbPBO
{
   [Required(AllowEmptyStrings = false, ErrorMessage = "O campo de nome nao pode ser nulo")]
    [MaxLength(55, ErrorMessage = "O campo de nome nao pode ter mais que 55 caracteres")]
    [Column("nome", TypeName = "char", Order = 4)]
    public string TbBonome { get; set; }
 }

これはテーブルの他のクラス表現です:

[Table("bi")]
public class TbPBi
{
    [Required(AllowEmptyStrings = false, ErrorMessage = "O campo nome nao pode ser nulo")]
    [MaxLength(55, ErrorMessage = "O campo nome nao pode ter mais que 55 caracteres")]
    [Column("nome", TypeName = "char", Order = 62)]
    public string TbBinome { get; set; }
}

これを使用してコンテキストを変更しようとしましたが、運がありませんでした。

public class PHCDbContext:DbContext
{
     public PHCDbContext(string connection):base(connection)
     {

        Database.SetInitializer<PHCDbContext>(null);
     }
     protected override void OnModelCreating(DbModelBuilder modelBuilder)
     {
        base.OnModelCreating(modelBuilder);
        modelBuilder.Entity<TbPBO>()
            .Map(mbo => { mbo.Properties(tnome => new { tnome.TbBonome }); mbo.ToTable("bo"); });

        modelBuilder.Entity<TbPBi>()
            .Map(mbo => { mbo.Properties(tnome => new { tnome.TbBinome }); mbo.ToTable("bi"); });

    }
}

これを回避する方法について何か考えはありますか?もう一つ。データベースは決して変更しないでください。私はそれを変更することはできません。

助けていただければ幸いです。前もって感謝します

4

1 に答える 1

0

多くのグーグルと試行錯誤の後。私はef電動工具を発見し、それをインストールして、データベースをリバースエンジニアリングさせました。プロセスを実行させます。テーブルをマッピングしました。クラスとコンテキストを作成しました。そして私がテストしてきたことで問題は解決しました。助けてくれてありがとう

于 2013-01-18T18:45:25.727 に答える