1

プロジェクトで PetaPoco/NPoco を使用しています。私が使用しているデータベース スキーマはあまりよく考えられていないため、POCO を wpf mvvm ビューに直接バインドすることはできません (これは、データベース スキーマも作成していたときに実行できたことです)。この問題に対する 2 つの可能な解決策を検討しています。

  1. マップされていないプロパティを POCO に追加する
  2. poco への参照を使用して、poco のラッパーを作成します。

この問題の実証済みのパターンは存在しますか?

4

1 に答える 1

3

ExplicitColumns別の名前の列にマップするために使用するように、PetaPoco マップを操作できます。ResultColumn更新/挿入ではなく、DB から取得したいプロパティに使用することもできます。最後に、マップされていないプロパティを、DB に関係のない追加の作業に使用することもできます。

namespace Site.Models {
    [TableName("Hotel")]
    [PrimaryKey("HotelID")]
    [ExplicitColumns]
    public class Hotel {
        [PetaPoco.Column("HotelID")]
        public int HotelID { get; set; }

        [PetaPoco.Column("HotelClaseID")]
        public int? HotelClaseID { get; set; }

        [ResultColumn]
        public string HotelClase { get; set; }

        [Required]
        [PetaPoco.Column("Nombre")]            
        public String Nombre { get; set; }

        ....
于 2013-08-20T13:59:19.850 に答える