PetaPoco没有看到类属性

时间:2013-03-21 14:09:29

标签: model attributes petapoco

出于某种原因,当我在Poco类上为tablename和主键设置属性时PetaPoco没有看到它们并默认为ID autoIncrement = false

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

当我调用Insert()方法时,这会失败。 如果我调用insert方法并显式传递表名,主键列,自动增量,那么它就可以工作。

为什么Peta Poco没有看到属性的任何想法?

我正在使用针对4.5框架的C#VS 2012

2 个答案:

答案 0 :(得分:0)

尝试更改您的数据数据注释:

[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; }
}

测试一下,看看这是否适合你。我认为你可能从NuGet下载的t4模板中没有看到它们将使用PetaPoco参考顶部和DNN核心中的DataUtil.cs我相信它正在寻找DNN注释。不确定这是一个错误,还是设计,但我自己也看到了,并想知道是否应该只为DNN PetaPoco提供t4模板。

我不确定AutoIncrement是否设置为false,但请注意我将其设置为“A”的大写。

希望这会有所帮助,我会继续关注下一个版本,我在7.0.5上进行了测试,看看他们是否为DNN PetaPoco更新了这个版本或发布了t4模板。

答案 1 :(得分: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; }
}