0

シーシュ...

これはできると思いますが、現時点では理解できません。

だから私はこのアプリを作成しました、それはうまく機能しています。しかし、何らかの理由で(申し訳ありませんが説明するには長すぎます)、データテーブルから取得する次のIDを予測する必要があります。

最後のID+1は機能しないことに注意してください。私はこれを試しました。

var lastProperty = db.Properties.OrderByDescending(p => p.PropertyID).FirstOrDefault();
int propID;
if (lastProperty == null)
{
    propID = 1;
}
    else
{
    propID = 1 + lastProperty.PropertyID;
}

そして、プロパティが削除されない限り、それは機能します... 1つが削除されるとすぐに、それはもちろん混乱します。たとえば、削除する6th Propertyと、最後の1つが削除され5th、そのコードを使用して、を取得します6 5(last one) + 1。そのコードから取得した関連モデルを保存します。データベースは6が存在し、削除されたことをデータベースがまだ記憶しているため、次Propertyは7になります...前回と同じように意図したモデルにはありません。不合格...PropertyID 6PropertyPropertyIDProperty

また、保存後にこれを追加することはできませPropertyん。これは解決策のように見えるかもしれませんが、そうではありません。それは予測されなければなりません。

ありがとう...助けてください...

アップデート

これは私が達成しようとしているユースケースです。

PropertyID Name DataTypeプロパティ を持つモデル。プロパティListを持つモデル。ID ListValue PropertyID

新規Propertyに作成されたユーザーは、に入力し、事前に作成されたNameドロップダウンリストから値をDataType選択します。その値がの場合List、リストボックス、テキストボックス、およびボタン()を含む追加のフォームが開きますadd_Button。ユーザーはテキストボックスに値を入力し、をクリックして値をadd_Buttonに追加しListます。

リストボックスはListモデルから入力されadd_Button、テキストボックスからListValueのプロパティに値を保存します。これもご覧のとおり、値を予測してList手動で追加しようとしています...PropertyIDList

Create次に、ボタンをクリックして、テキストボックスで必要なすべての要素を追加し終えたら、Property保存します。

これが十分に明確であることを願っています。

4

3 に答える 3

2

ID列の現在の状態を知りたいようです。

SELECT IDENT_CURRENT('Table')
于 2012-08-29T22:44:08.673 に答える
1

Dbにコミットする前に主キー値がどうなるかを知る必要がある場合は、一意の識別子(GUID)をのPkとして、したがってエンティティPropertyのFkとして使用できます。Listそうすれば、自分で作成することができ、コミットメントでは常に一意になります。

于 2012-08-31T06:54:00.407 に答える
0

Entity Frameworkについておっしゃっていますが、モデルを調整してみましたか?

StoreGeneratedPatternデータベースに保存するときにローカルモデルを自動的に更新できるように調整できます。

于 2012-08-29T23:04:28.787 に答える