3

私は非常に長い間問題を抱えています。この例を想像してみましょう:

public class Coordinate {

     public int id {get;set;}
     public int x {get;set;}
     public int y {get;set;}
}
public class Planet {

     public int id {get;set;}
     public string name {get;set;}
     public Coordinate coordinate {get;set;}
}

私は 2 つのモデルを作成しました。モデル Planet はモデル Coordinate を属性として持っています。ここで、コードのどこかで 1 つの座標を作成し、それをデータベースに保存するとします。これが座標だと想像してください:

Coordinate c = new Coordinate();
c.x = 1;
c.y = 2;

次に、それをデータベースに追加すると、保存されます。

しかし、惑星を作成すると、次のようになります。

planet.coordinate = c;

そして、それをデータベースに追加しようとしましたが、次のエラーが発生しました:

タイプ 'Microsoft.EntityFrameworkCore.DbUpdateException' の例外が Microsoft.EntityFrameworkCore.dll で発生しましたが、ユーザー コードでは処理されませんでした

追加情報: エントリの更新中にエラーが発生しました。詳細については、内部例外を参照してください。

属性public Coordinate coordinateを変更できることはわかっていますpublic int coordinate_idが、代わりに Coordinate モデルでこれを行いたいと考えています。

ASP NET CORE 1.0 を使用しています

カンプス

4

3 に答える 3

2

内部例外を確認すると、何が問題なのかをより詳細に把握できます。

これを行うには、例外が表示されたときにデバッグ モードで実行します。詳細の表示をクリックし、内部例外が見つかるまでツリーをたどります。

行の重複、主キーの問題、または構造の問題がある可能性があります。

于 2016-08-03T19:13:06.843 に答える