You can create something like this.

And add your list like this.
-- Sua primeira pessoa
INSERT INTO [dbo].[Pessoas]([Nome],[Idade],[Telefone],[CPF])
     VALUES('Carlos',21,'1122223333','345.322.234-54')
GO
 -- Sua lista de Estados 
 -- após você grava seu usuario você tem que fazer um loop para salvar cada estado da pessoa,
 -- caso isso esteja dentro de alguma aplicação 
 declare @IdPessoa int = @@IDENTITY;
INSERT INTO [dbo].[Estados]([IdPessoa] ,[Descricao]) VALUES
 (@IdPessoa,'Estado 1'),  -- Aqui onde ficar a intereção do seu insert veja que o IdUsuario é sempre o mesmo
 (@IdPessoa,'Estado 2'),  -- ou seja para pessoa você pode ter mais de um estado. 
 (@IdPessoa,'Estado 3'),  
 (@IdPessoa,'Estado 4'),  
 (@IdPessoa,'Estado 5'),  
 (@IdPessoa,'Estado 6'),  
 (@IdPessoa,'Estado 7')
 select * from Pessoas P
 join Estados E
 on E.IdPessoa = P.IdPessoa
IdPessoa    Nome    Idade   Telefone    CPF IdEstado    IdPessoa    Descricao
2   Carlos  21  1122223333  345.322.234-54  1   2   Estado 1
2   Carlos  21  1122223333  345.322.234-54  2   2   Estado 2
2   Carlos  21  1122223333  345.322.234-54  3   2   Estado 3
2   Carlos  21  1122223333  345.322.234-54  4   2   Estado 4
2   Carlos  21  1122223333  345.322.234-54  5   2   Estado 5
2   Carlos  21  1122223333  345.322.234-54  6   2   Estado 6
2   Carlos  21  1122223333  345.322.234-54  7   2   Estado 7
							
							
						 
How’s your model? and how are you trying to save?
– Marco Souza
Show the code! the part that matters!
– user28366
Click [Edit] and enter the code.
– Jéf Bueno
Could you add the part of your code that’s working? If you are working in protected code I suggest you create an example code to better illustrate your question
– RodrigoBorth
I believe the problem has more to do with SQL Server than with C# or Angularjs, even if you use these two latest technologies in your application.
– Oralista de Sistemas