2010-10-10 1 views
0

Я получаю сообщение об ошибке:Как решить «не может решить, какое свойство рассмотреть ключ» ошибка

«не может решить, какое свойство рассмотреть Key - вы можете создать один называется «ID», или пометить один с атрибутом»SubSonicPrimaryKey

код в вопросе порождается context.tt:

public SqlQuery Delete<T>(Expression<Func<T,bool>> column) where T:new() 
    { 
     LambdaExpression lamda = column; 
     SqlQuery result = new Delete<T>(this.Provider); 
     result = result.From<T>(); 
     result.Constraints=lamda.ParseConstraints().ToList(); 
     return result; 
    } 

в моей БД соответствующей таблицы в ctually имеет первичный ключ, который называется ID. И я попытался вставить SubSonicPrimaryKey Атрибут:

uint _ID; 
    [SubSonicPrimaryKey] 
    public uint ID 
    { 
     get { return _ID; } 
     set 
     {... 

Как я могу это исправить?

ответ

1

Вы должны опубликовать трассировку стека вашего исключения.

Это всего лишь дикая догадка, но я полагаю, что дозвуковой находит два возможных первичных ключа, один из которых называется ID и один с атрибутом SubSonicPrimaryKey, и не проверяет, насколько они равны, и поскольку количество возможных ключей не равно 1 исключение исключается.

Вам следует попытаться удалить атрибут SubSonicPrimaryKey вашего класса, так как свойство уже называется ID.

0

Я предполагаю, что ваша проблема связана с типом значения uint. У SubSonic есть проблемы с обработкой неподписанных типов значений. Попробуйте использовать свойство int вместо основного ключа!

 Смежные вопросы

  • Нет связанных вопросов^_^