我目前正在开发一个WPF应用程序(C#,使用Prism框架),该应用程序将包含一个绘图窗格,用户可以在其中使用鼠标绘制多边形。
但是我想知道如何使这些图纸持久化。
我猜包含这些图形的最佳对象是多边形对象?
我还希望这些多边形具有某些属性,例如颜色等(如果需要,我可以通过定义自己的多边形继承对象来做到这一点)。
但我特别想知道如何使这种信息在数据库中持久存在?(我现在正在使用SQLite)。
我希望能够在数据库中存储多边形信息,包括该多边形的填充颜色等信息。
我一直在谷歌上搜索这个,但我没有找到有用的东西。有人可以指出我正确的方向吗?
感谢您的任何帮助!
您必须创建模型类才能存储要存储的必要信息。
我认为这可能是使用实体框架的最佳解决方案,因此您不必费心创建模型类,您可以使用现有的模型类。但是,在您的情况下,它可能会将大量不必要的信息保存到您的表中。
如果要创建自己的模型类,则可以向 .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