将 SQL Server 数据库列的数据类型设置为类



我最近使用c#winforms进行了垄断游戏,现在我需要将其转换为Web应用程序。我正在使用ASP.NET,并且在按钮点击上重置变量时遇到了一些问题。

为了解决此问题,我计划在更改时将所有数据存储在SQL Server数据库中,然后在需要时检索。主要问题是我有2个类SquarePlayer

我可以处理播放器罚款的数据,但是每个正方形都有一个与之关联的播放器,称为"所有者"。我只是想知道在SQL Server数据库中是否有任何方法可以将"所有者"的数据类型设置为" player"类,以便我可以将其与所有其他数据一起保存。预先感谢。

SQL Server是为结构化表格数据而设计的,并且最适合使用。对于复杂的对象,这通常意味着在几个表上需要几个记录来表示一个对象。

但是,您要做的就是将复杂的对象存储在SQL Server中的单个列中。您可以在SQL Server中执行此操作,将对象序列化为字符串(通常是XML或JSON(,并将对象的字符串表示形式存储在SQL中的NVarchar(Max(列中。当您获取记录时,将其重新列为对象。执行此操作时,您在SQL Server中损失了很多功率,但是如果您不需要操纵对象服务器端中的数据,则可以正常运行(您可以在SQL Server中进行有限的XML和JSON处理,但是从您正在做的事情的声音中,您不需要(。

序列化对象的最简单,最流行的方法之一是使用Newtonsoft JSON。为newtonsoft添加Nuget软件包,然后通过调用string myComplexObjectAsAString = JsonConvert.SerializeObject(myComplexObject);序列化对象。您可以将该字符串发送到SQL,然后将其退回时,请使用MyComplexObjectType myComplexObject = JsonConvert.DeserializeObject<MyComplexObjectType>(theStringDataThatYouGotFromSqlServer);

最新更新