【发布时间】:2013-08-22 00:40:11
【问题描述】:
我在我的项目中使用 PetaPoco/NPoco。我正在使用的数据库架构并不是我们认为的很好,因此我不能直接将 POCO 绑定到我的 wpf mvvm 视图(这是我在创建数据库架构时曾经能够做的事情)。我正在考虑这个问题的两种可能的解决方案:
- 向 POCO 添加未映射的属性
- 使用对 poco 的引用为 pocos 创建一个包装器
这个问题是否存在经过验证的模式?
【问题讨论】:
我在我的项目中使用 PetaPoco/NPoco。我正在使用的数据库架构并不是我们认为的很好,因此我不能直接将 POCO 绑定到我的 wpf mvvm 视图(这是我在创建数据库架构时曾经能够做的事情)。我正在考虑这个问题的两种可能的解决方案:
这个问题是否存在经过验证的模式?
【问题讨论】:
您可以根据需要使用ExplicitColumns 操作 PetaPoco 映射以映射到不同的命名列。您还可以将ResultColumn 用于您希望从数据库中获取而不更新/插入的属性。最后,您还可以将未映射的属性用于与数据库无关的额外工作。
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; }
....
【讨论】: