我在我的项目中使用 PetaPoco/NPoco。我正在使用的数据库架构并不是我们认为的很好,因此我不能直接将 POCO 绑定到我的 wpf mvvm 视图(这是我在创建数据库架构时曾经能够做的事情)。我正在考虑这个问题的两种可能的解决方案:
- 将未映射的属性添加到 POCO
- 使用对 poco 的引用为 pocos 创建一个包装器
这个问题是否存在经过验证的模式?
您可以根据需要操作 PetaPoco 映射ExplicitColumns
以映射到不同的命名列。您还可以使用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; }
....