将多边形对象从WPF应用程序存储到数据库?

时间:2016-05-31 13:56:16

标签: c# wpf sqlite

我目前正在开发一个WPF应用程序(C#,使用Prism框架),它将包含一个绘图窗格,用户可以使用鼠标绘制多边形。

但我想知道如何使这些图纸持久。

我猜测包含这些绘图的最佳对象是Polygon对象?

我还希望这些多边形具有某些属性,例如颜色等(如果需要,我可以通过定义我自己的多边形继承对象来实现)。

但我特别想知道如何在数据库中保持这种信息的持久性? (我现在正在使用SQLite。)

我希望能够在数据库中存储Polygon信息,包括Polygon等的填充颜色等信息。

我一直在谷歌搜索,但我找不到有用的东西。有人能指出我正确的方向吗?

感谢您的帮助!

1 个答案:

答案 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