6

サービスアナウンスを含むテーブルがあります。このテーブルには、1:1のPOCOがあります。ただし、追加のフィールドが1つ含まれています。私のクエリでは、これは作成者の結合されたユーザー名であり、テーブルには作成者IDのみが含まれています。

[Ignore]このフィールドの属性を追加するだけで、POCOを挿入/更新に問題なく使用できると思いましたか?私の問題は、属性を使用すると、フィールドが入力されないことです。そして、属性がないと、挿入/更新時に強打されます。[Ignore]BrukerNavn

[TableName("tblDriftsmelding")]
[PrimaryKey("DriftID")]
public class Driftsmelding
{
                            public int DriftID { get; set; }
    [Column("tittel")]      public string Tittel { get; set; }
                            public string Tekst { get; set; }
                            public string HTMLTekst { get; set; }
    [Column("gyldigfra")]   public DateTime? Fra { get; set; }
    [Column("gyldigtil")]   public DateTime? Til { get; set; }
    [Column("publisert")]   public bool Publisert { get; set; }
    [Column("CreatedBy")]   public int? BrukerID { get; set; }
                            public string BrukerNavn { get; set; }
}

これがPOCOです。このテーブルは、最後の「BrukerNavn」フィールドを除いて、1:1のマッピングです。

select d.DriftID, d.Tekst, d.Created, d.gyldigtil, d.gyldigfra, d.publisert, d.tittel, d.HTMLTekst, d.createdby, b.brukerident as BrukerNavn 
    from tblDriftsmelding d
    left outer join tblbruker b on d.CreatedBy = b.brukerid 
    order by DriftID desc

これは、POCOにフィードするクエリです。(私も使ってみselect d.*, b.brukeridました。違いはありません)

(実際の質問は、テキストの残りの部分と混ざり合っているため、上記のテキストでは太字で示されていることに注意してください)

4

1 に答える 1

10

必要なのは属性だと思い[ResultColumn]ます。クエリにそのデータが含まれている場合、これは列を埋め、挿入や更新には使用されません。

詳細については、こちらをご覧ください-> http://www.toptensoftware.com/Articles/101/PetaPoco-Working-with-Joins

于 2011-08-25T08:27:30.573 に答える