2013-03-21 4 views
0

По какой-то причине, когда я создал атрибуты класса Poco для имя_таблицы и первичного ключа PetaPoco не видим их и недобросовестный ID Autoincrement = ложныйPetaPoco не видя атрибуты класса

[TableName("MyTableName")] 
[PrimaryKey("Id", autoIncrement = true)] 
public class MyClass 
{ 
    public int Id { get; set; } 
    public string Description { get; set; } 
} 

Когда я называю Insert () это не удается. Если я вызываю метод insert и явно передаю имя таблицы, столбец первичного ключа, автоинкремент, то он работает.

Любые идеи, почему Пета Поко не видит атрибуты?

Я использую C# VS 2012 с таргетингом на Framework 4.5

ответ

0

Попробуйте изменить DataAnnotations данных, как это:

[DotNetNuke.ComponentModel.DataAnnotations.TableName("MyTableName")] 
[DotNetNuke.ComponentModel.DataAnnotations.PrimaryKey("Id", AutoIncrement = true)] 
public class MyClass 
{ 
    public int Id { get; set; } 
    public string Description { get; set; } 
} 

проверить это и посмотреть, если это работает для вас. Я думаю, что они не видят их в шаблонах t4, которые вы, возможно, загрузили из NuGet, будут иметь использование ссылки PetaPoco вверху и в DataUtil.cs в ядре DNN. Я считаю, что он ищет аннотации DNN. Не уверен, что это ошибка или по дизайну, но я сам это видел и подумал, должны ли быть шаблоны t4 только для DNN PetaPoco.

Я не уверен, что для параметра AutoIncrement установлено значение false, но обратите внимание, что я положил его в верхнем регистре для «A».

Надеюсь, что это поможет, я буду продолжать смотреть на следующую версию, я проверил это на 7.0.5 и посмотрю, обновляют ли они это или выпускают шаблоны t4 только для DNN PetaPoco.

0

Попробуйте добавить атрибут PrimaryKeyColumn свойству Id, как показано ниже

[TableName("MyTableName")] 
[PrimaryKey("Id", autoIncrement = true)] 
public class MyClass 
{ 
    [PrimaryKeyColumn(AutoIncrement=true)] 
    public int Id { get; set; } 

    public string Description { get; set; } 
} 
Смежные вопросы