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);