我目前正在开发一个WPF应用程序(C#,使用Prism框架),它将包含一个绘图窗格,用户可以使用鼠标绘制多边形。
但我想知道如何使这些图纸持久。
我猜测包含这些绘图的最佳对象是Polygon对象?
我还希望这些多边形具有某些属性,例如颜色等(如果需要,我可以通过定义我自己的多边形继承对象来实现)。
但我特别想知道如何在数据库中保持这种信息的持久性? (我现在正在使用SQLite。)
我希望能够在数据库中存储Polygon信息,包括Polygon等的填充颜色等信息。
我一直在谷歌搜索,但我找不到有用的东西。有人能指出我正确的方向吗?
感谢您的帮助!
答案 0 :(得分:0)
您必须创建模型类才能存储您想要存储的必要信息。
我认为这可能是使用Entity Framework的最佳解决方案,因此您不必费心去创建模型类,您可以使用现有的模型类。但是,在您的情况下,它可能会将大量不必要的信息保存到您的表中。
如果要创建自己的模型类,可以将辅助扩展方法添加到.net类型,例如Polygon
。该方法将从.net类生成一个可存储的模型类,可以保存到数据库中。
例如:
型号类:
public class PolygonDbFormat // the class which contains the information you want to store
{
public string Name { get; set; }
public Brush Fill { get; set; }
}
定义扩展方法:
public static class PolygonEx
{
public static PolygonDbFormat AsDbFormat(this Polygon polygon)
{
return new PolygonDbFormat
{
Name = polygon.Name,
Fill = polygon.Fill
};
}
}
然后您可以通过以下方式将Polygon
类保存到数据库中:
var dbFormat = yourPolygon.AsDbFormat();
_yourDbManager.AddEntry(dbFormat); // your implementation to store the data in database