1

私はペタポコが初めてで、最初は気に入っていましたが、検索方法がわからない壁にぶつかりました。プロパティの 1 つ、つまり Job.Min.BaseValue 内にプロパティを設定する必要があるオブジェクトがあります。このデータのソースは「min_mb」です。したがって、基本的に私のオブジェクトはソーステーブルの直接マッピングではありません

public class Usage
{
   public Decimal BaseValue {get;set;}
   public Decimal BaseScale {get;set;}
   public Decimal BaseUnit {get;set;} 
}

[PetaPoco.TableName("data")]
[PetaPoco.PrimaryKey("date, client_name")]
[PetaPoco.ExplicitColumns] 
public class Job
{
   [PetaPoco.Column("date")]
   public DateTime Date {get;set;}
   [PetaPoco.Column("client_name")]
   public String ClientName {get;set;}

   public Usage Min {get;set;}

   public CommvaultJob() { Min = new Usage() { BaseScale=1024, BaseUnit="MB" }; }
}
4

2 に答える 2

1

Fetch または Query を呼び出すときに、余分な型が欠落していると思います。これは私のために働いた:

ぺたポコを呼び出す:

var allData = _db.Fetch<TestJobPoco,Usage>("select * from dataTEST");
return View( allData);

ポコス :

[PetaPoco.ExplicitColumns]
public class Usage
{
   public Usage()
   {
       BaseScale=1024;
       BaseUnit="MB";
   }

   [PetaPoco.Column("base_value")]
   public Decimal BaseValue {get;set;}

   [PetaPoco.Ignore]
   public Decimal BaseScale {get;set;}

   [PetaPoco.Ignore]
   public string BaseUnit {get;set;} 
}

[PetaPoco.TableName("dataTEST")]
[PetaPoco.PrimaryKey("id")]
[PetaPoco.ExplicitColumns]
public class TestJobPoco
{
   [PetaPoco.Column("id")]
   public int Id {get;set;}

   [PetaPoco.Column("date")]
   public DateTime Date {get;set;}

   [PetaPoco.Column("client_name")]
   public String ClientName {get;set;}

   public Usage Min {get;set;}

    public TestJobPoco()
    {
        //Min = new Usage() { BaseScale=1024, BaseUnit="MB" };
    }
}

テスト データベースには、id、date、client_name、および base_value 列があります。主キーは id であるため、あなたのものとは少し異なりますが、これによって poco マッピングが行われる方法が変わることはありません。

于 2012-11-10T11:41:45.267 に答える
0

オブジェクトがテーブル構造にマップされていない場合、ORMはあまり役に立ちません。

手動でマッピングを行うか、他のフィールドの値をコピーする新しいシャドウプロパティを作成する必要がありますが、この複雑さが増すと、ORMの目的が損なわれます。

于 2012-11-09T02:32:04.033 に答える