はねえ、私はデータベースにツリー構造の種類を表すいくつかのオブジェクト配置したい、同時に2つの要求:割り当てエンティティID、ない、
各TreeNodeの要素は、一意のIDを持っている必要があります。私はアプリ
{
"name": "Tree Node 1",
"children":
[{
"name": "Tree Node 2",
"children":
[{
"name": "Tree Node 3",
"children":
[{
"name": "Tree Node 4",
"children":
[{
"name": "Tree Node 5",
"children":
[{
"name": "Tree Node 6",
"children": [],
"data":
{
}
}]
},
{
"name" : "Tree Node embeded parent 4",
"children": [],
"data":
{
}
}]
}]
}]
}]
}
の手前側からrecived
私のTreeNode
public class TreeNode
{
public int Id { get; set; }
public int ParentId { get; set; }
}
データ私の問題はある - 私は、各ノードに対して正しいIDを割り当てることができますか?
私の現在の解決策は、最後のIDが挿入されたデータベースから取得しています。これを使用して、それを最終的なTreeObjectに割り当てます。それは動作しますが、私は十分に良いものではありません。
このソリューションには少なくとも1つの大きな欠点があります.2人のユーザーが同時にデータベースにデータをプッシュしようとするとどうなりますか?
ユーザーAが「保存」ボタンをクリックしたとします。 TreeProcessorは、データベースから取得したもので、100が最後に挿入されたという情報です。 はTreeProcessor(例えばIDを割り当てる)処理データで終了した後、 データをデータベースに送信する準備ができているが、突然接続がスローダウンしているネットワーク...
同時に、ユーザーBは、あまりにも「保存」をクリックしたが、と別のデータ。 ユーザAのデータがまだ届かないため、データベースは最後に挿入されたIDとして100を送信しました.....
Guidをキーに使用する、 'public Guid Id {get;セット; } '。 –