2017-01-19 1 views
0

У меня есть класс, который наследует класс ролей.Как добавить уникальное ограничение на свойство, унаследованное от класса Role в DevExpres, Xpo?

public class WMSRole : Role 
{ 
    //....some properties/relationships 
} 

В роли наследует RoleBase и последний класс имеет свойство Имя, как я мог бы определить это уникальное правило по имени?

Позднее обновление:

это решение мне удалось реализовать, редактировать Designed.Diffs (через модель дизайнера)

<Validation> 
    <Rules> 
     <RuleUniqueValue Id="WmsRole Name Should be Unique" TargetContextIDs="Save" TargetCollectionOwnerType="" TargetCollectionPropertyName="" TargetPropertyName="Name" TargetType="Davanti.WMS.Core.Model.Authorisation.WMSRole" IsNewNode="True" /> 
     <RuleRequiredField Id="WmsRole Name is Required" TargetContextIDs="Save" TargetCollectionOwnerType="" TargetCollectionPropertyName="" TargetPropertyName="Name" TargetType="Davanti.WMS.Core.Model.Authorisation.WMSRole" IsNewNode="True" /> 
    </Rules> 
    </Validation> 

ответ

0

Прежде всего, я думаю, что вы должны скрыть унаследованный недвижимость, если вы хотите, чтобы добавить некоторые ограничения только на этом одном

private string name; 
     public static string PropertyName = "Name"; 
     new public string Name 
     { 
      get { return Name; } 
      set { Name = value; } 
     } 
+0

Я никогда не пытался таким образом ... в конце концов, что я сделал, чтобы добавить ограничение уникальности от дизайнера, который редактировал мой файл designed.diffs. –

+0

«см. Обновленный вопрос» - для решения, о котором я говорил –

0

вы можете использовать RuleCombinationOfPropertiesIsUnique, который является атрибутом класса, а не атрибут свойства.

[RuleCombinationOfPropertiesIsUnique("RoleUniqueName", DefaultContexts.Save, "Name")] 
public class MyRole : Role { 
    public MyRole(Session session) : base(session) { } 
    // etc... 
} 

Или для чего-то более сложного, у вас есть атрибут RuleFromBoolProperty. См. Документацию here.

Е.Г.,

[RuleFromBoolProperty("RoleUniqueName", DefaultContexts.Save, 
    "Role with this Name already exists", UsedProperties = "Name")] 
public bool IsNameUnique { 
     //... 
} 
Смежные вопросы