我是PetaPoco的新手,一开始我很喜欢它,但后来遇到了一堵墙,我根本不知道如何搜索它。我有一个对象,需要设置其属性之一的属性,即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" }; }
}发布于 2012-11-10 19:41:45
我认为在调用Fetch或Query时会遗漏额外的类型。这对我很有效:
调用PetaPoco:
var allData = _db.Fetch<TestJobPoco,Usage>("select * from dataTEST");
return View( allData);pocos:
[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-09 10:32:04
如果您的对象没有映射到表结构,ORM就不能提供太多帮助。
您将需要手动进行映射或创建新的影子属性来复制其他字段的值,但这种增加的复杂性将违背ORM的目的。
https://stackoverflow.com/questions/13300614
复制相似问题