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



我目前正在开发一个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

相关内容

最新更新