EntityにAtrributeを追加してscaffoldするだけだと、このように重複登録ができてしまいます。
EntityにUniqueを付けます。
Entityを右クリックし、Edit Entityを選択。
UniqueをYesにし、Attributesに重複させたくない項目(今回はName)を入れていきます。
Entityを変更したので、Publishしますが、
Entiry上で既に重複があるとエラーになってしまいます。
Publish済みのアプリケーションかEntityを右クリックのView or Edit Dataから重複がないようにデータを変更して、Publishを成功させましょう。
重複した内容で登録しようとするとエラーが出るようになりましたが、
これだとエンドユーザーにとって不親切なのでValidationを行っていきます。
CustomerDetailのClient Action、Save Detailを開きます。
CustomerDetail(Screen)を右クリックし、Fetch Data from Databaseを選択、名前をGetCustomerByNameにします。
What data do you want to get? に get customer by Name と入力していくと表示されるそれらしきEntityを選択し、Get Dataをクリックします。
No Filtersになっているタブを選択し、Add filerボタンをクリックします。
Screen上に表示されているName(GetCustomerById.List.Current.Customer.Name)と同じものという条件を入れます。
SaveDetailのStartの下にGetCustomerByNameを配置、その下にIfを配置し、ConditionをGetCustomersByName.List.Emptyにします。
Validationエラー時のAssignを配置しますが、配置したIfの矢印の向きに注意してください。
EmptyがTrueの時は重複していないので下、Falseの時は重複しているのでAssignに向かいます。
そして、そのAssignからはTrueと同じ方向に向かうようにしてください。
そうすると複数項目あった場合、複数のエラー表示を行うことができます。
AssignmentsはInput_Name.ValidとInput_Name.ValidationMessageですが、
Widgetsの配下にあり、配下のValidを一つでもFalseにするとForm1.ValidもFalseになるようです。