There are two things going on here.
First if your databases are on the same instance of sql server (essentially two different versions of the same database running under the sql instance) then you won't need to have a linked server.
However, if they are running on different servers (and possibly different machines) then you'll need to link them as stated by Oded and David.
I would create a stored procedure and call it from the code as needed.
CREATE PROC usp_AddMyRecords
AS
BEGIN
INSERT INTO [NewModel.Persistence.PersistencyContext].[dbo].[NewPerson] (
[Name],
[Location],
[LastUpdate]
)
SELECT
MIN([name]),
MIN([location]),
MIN([time])
FROM [OldModel.Persistence.PersistencyContext].[dbo].[ExPerson]
GROUP BY name
END
C# Code To Call the Procedure:
SqlConnection dbConnection = new SqlConnection(ConfigurationManager.ConnectionStrings
[YOUR_CONNECTION_STRING_NAME].ConnectionString);
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "usp_AddMyRecords";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Connection = dbConnection;
conn.Open();
cmd.ExecuteNonQuery();