SQL Server был разработан и работает лучше всего для структурированных табличных данных. Для сложных объектов это обычно означает, что для представления одного объекта требуется несколько записей в нескольких таблицах.
Однако вы пытаетесь сохранить сложный объект в одном столбце в SQL Server. Вы можете сделать это в SQL Server, сериализовав ваш объект в строку (обычно XML или JSON) и сохранив строковое представление вашего объекта в столбце nvarchar (max) в SQL. Когда вы извлекаете запись, десериализуйте ее обратно в объект. При этом вы теряете немного энергии в SQL Server, но если вам не нужно манипулировать данными внутри объекта на стороне сервера, то он работает нормально (вы можете выполнять ограниченную обработку XML и JSON на сервере SQL, но от звуков того, что вы делаете, вам не нужно).
Одним из самых простых и популярных способов сериализации объектов является использование Newtonsoft JSON. Добавьте пакет NuGet для Newtonsoft, а затем сериализуйте ваши объекты, вызвав string myComplexObjectAsAString = JsonConvert.SerializeObject(myComplexObject);
. Вы можете отправить эту строку в SQL, и когда вы получите ее обратно, используйте MyComplexObjectType myComplexObject = JsonConvert.DeserializeObject<MyComplexObjectType>(theStringDataThatYouGotFromSqlServer);