2013-03-21 50 views
0

出于某种原因,当我成立了一个波科类属性的表名和主键PetaPoco没有看到他们,并默认为ID自动增量=假PetaPoco没有看到类属性

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

当我打电话插入( )方法失败。 如果我调用插入方法并显式传递表名,主键列,自动增量,那么它的工作原理。

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

我使用C#VS 2012针对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; } 
} 

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

我不确定AutoIncrement被设置为false,但请注意,我将它放在大写字母“A”中。

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

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