0

私は Visual Studio を使用しており、MVC ベースのアプリに取り組んでいます。モデルにいくつかのテーブルを追加しようとしています。オプション「データベースからモデルを更新」を使用しました。新しいテーブルが edmx ファイルに表示されました。ソリューションを再構築しましたが、新しいテーブルのクラスがありません。新しいテーブルを追加するたびにクラスを生成するトリックはありますか? または、手動で行う必要がありますか?「コード生成戦略」を「デフォルト」に設定すると、このようなエラーが何百も発生しError 117 The type 'Mvc4.Models.DPR_MM' already contains a definition for 'DPR_TS'ます。
モデル全体を削除しました。ソリューション全体を検索しているときDPR_MMに、次の結果が得られます: すべての "DPR_MM"、サブフォルダー、検索結果 1、ソリューション全体を検索、""

  C:\\Mvc4\Controllers\HomeController.cs(41):                    var DPR_MM = from d in ctx.DPR_MM
  C:\\Mvc4\Controllers\HomeController.cs(45):                    var arr = new object[DPR_MM.Count()];
  C:\\Mvc4\Controllers\HomeController.cs(47):                    foreach (var d in DPR_MM)
  C:\\Mvc4\Models\Model1.edmx(9):          <EntitySet Name="DPR_MM" EntityType="Model.Store.DPR_MM" store:Type="Tables" Schema="QF" />
  C:\\Mvc4\Models\Model1.edmx(45):        <EntityType Name="DPR_MM">
  C:\\Mvc4\Models\Model1.edmx(366):          <EntitySet Name="DPR_MM" EntityType="Model.DPR_MM" />
  C:\\Mvc4\Models\Model1.edmx(389):        <EntityType Name="DPR_MM">
  C:\\Mvc4\Models\Model1.edmx(715):          <EntitySetMapping Name="DPR_MM">
  C:\\Mvc4\Models\Model1.edmx(716):            <EntityTypeMapping TypeName="Model.DPR_MM">
  C:\\Mvc4\Models\Model1.edmx(717):              <MappingFragment StoreEntitySet="DPR_MM">
  C:\\Mvc4\Models\Model1.edmx.diagram(8):        <EntityTypeShape EntityType="Model.DPR_MM" Width="1.5" PointX="0.75" PointY="0.75" IsExpanded="true" />
  Matching lines: 11    Matching files: 3    Total files searched: 168

したがって、DPR_MM クラスは表示されません。私が間違っていることは何ですか?

4

1 に答える 1

0

編集

エラーが発生していることがわかったので、生成されたコードを確認します(クラスDPR_MMのソリューション検索を実行して、このクラスのすべてのインスタンスを見つけることもできます)。プロジェクトにクラスMvc4.Models.DPR_MMがあり、すでにメンバーとしてDPR_TSがあり、コード生成はそれを認識し、次のような別のクラスを生成しないと思います。

public partial class DPR_MM : EntityObject
{
    public global::System.Int32 DPR_TS
    {
    ...
    }
}

public partial class DPR_MM : EntityObject
{
    //maybe code generation fails because it doesn't want to do this a second time knowing it would be ambiguous 
    public global::System.Int32 DPR_TS  
    {
    ...
    }
}

データベースや名前空間に問題がない限り、常に新しいモデルを生成できるはずなので、@Mamuが言うように余分なファイルが配置されていないことを確認してください。またはあなたはそれをグーグルすることができます: 最初に別の答え
を打つ





最初の答え

ビルドを実行します。次に、「データベースからモデルを更新」したときに選択したテーブルに基づいて、すべての新しいクラスが表示されます(「データベースからモデルを更新」したときに新しいテーブルを選択する必要があることは明らかです)。

于 2012-12-11T15:53:09.493 に答える