0

何らかの理由で、テーブル名と主キーの Poco クラスに属性を設定すると、PetaPoco はそれらを認識せず、ID autoIncrement = false にデフォルト設定されます

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

Insert() メソッドを呼び出すと、これは失敗します。挿入メソッドを呼び出して、テーブル名、主キー列、自動インクリメントを明示的に渡すと、機能します。

Peta Poco に属性が表示されない理由はありますか?

4.5 フレームワークを対象とする C# VS 2012 を使用しています

4

2 に答える 2

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; }
}
于 2015-06-30T18:43:07.750 に答える
0

次のように Data 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テンプレートをリリースするかを確認します.

于 2013-05-02T22:00:11.317 に答える