I want to allow users to choose their own login name, however I have to make sure there are no duplicates. Solution, add a distinct index on the Entity/attribute and add a line to the ValidationTemplate.strings.
So in the Entity Modeler notice I added the index. In this case I called it "distinctLogin".
You will see this in the migrations like this:
"distinctLogin", true, new ColumnIndex("username")
Now if a user tries to add a login, and that login is in use by someone else, the database will throw a Unique Constraint Exception. We can control the message given to the user in the ValidationTemplate.strings file like this:
"UniqueConstraintException.distinctlogin" = "Please choose a different login name (It must be unique).";
"Quote.quoteAmount"="You must enter a dollar amount in the format 123.00 (you entered @@escapedValue@@)!";
Remember the ValidationTemplate.strings file lives in the <language>.lproj folder.