2016-12-08 1 views
0

私の状況は、IDをランダムに割り当てることができないので、インスタンス内で値を設定するという点でユニークです。モデラーを使用してエンティティのいくつかのインスタンスを作成しました。以下は、作成したXMLです:インスタンスのIDを設定できません

  1. 挿入されたレコードは、モデル/ XMLで次の特定のIDを使用していない:

    <cf:entity name="Test4" namespace="Amikids.TimeTracking" categoryPath="/Amikids.TimeTracking"> 
        <cf:property name="Id" key="true" typeName="int" /> 
        <cf:property name="Name" /> 
        <cf:instance> 
         <cf:instanceValue name="Id">10</cf:instanceValue> 
         <cf:instanceValue name="Name">Test 1</cf:instanceValue> 
        </cf:instance> 
        <cf:instance> 
         <cf:instanceValue name="Id">20</cf:instanceValue> 
         <cf:instanceValue name="Name">Test 2</cf:instanceValue> 
        </cf:instance> 
        <cf:instance> 
         <cf:instanceValue name="Id">30</cf:instanceValue> 
         <cf:instanceValue name="Name">Test 3</cf:instanceValue> 
        </cf:instance> 
        </cf:entity> 
    

    期待通りに動作していない2つのことがあります。その代わりに、インクリメンタルに1から始まる作成されました:

ID Name 
 
1 Test 1 
 
2 Test 2 
 
3 Test 3

(以下のコードスニペットに表示されているだけなので、すべてのレコードが1行に表示される私のリストを再フォーマットからStackOverflowのを防ぐために)
  1. 2回目にモデルを作成すると、重複レコードが挿入されます。でIDを指定するが、

(以下ので、すべてのレコードが1行に表示されるだけで私のリストを再フォーマットからStackOverflowのを防ぐために、コードスニペットに表示されている)

ID Name 
 
    1 Test 1 
 
    2 Test 2 
 
    3 Test 3 
 
    4 Test 1 
 
    5 Test 2 
 
    6 Test 3

+0

Idプロパティは、データベースのID列に変換されます。したがって、Id列の値を明示的に設定することはできません。 Id列の値を設定できるようにするには、モデル内で 'persistenceIdentity =" false "'を設定する必要があります。 – meziantou

答えて

0

私はIDを指定することができたコードを使用してレコードを作成した単純な回避策として、インスタンスは動作していないようです。これは、次のコードスニペットで検証されています。

  Amikids.TimeTracking.Test4 test4 = new Amikids.TimeTracking.Test4(); 
     test4.Id = 100; 
     test4.Name = "Test 100"; 
     test4.Save(); 

     test4 = new Amikids.TimeTracking.Test4(); 
     test4.Id = 200; 
     test4.Name = "Test 200"; 
     test4.Save(); 
関連する問題