I'm no ria services specialist but I'll share with you how I did as I had the same problems...
You could try to add an [Editable(true, AllowInitialValue=true)] in your metadata. This will make the normal fields editable but then I got stuck later with other problems.
In fact what I did is use composition instead of using views. You should try not to do the work in the database in place of the entity framework. So for exemple with your view, replace it with a composition. Meaning: extract the field you require using linq and build a custom object holding the fields from the diffrent tables you need... Here you can find many good samples on what you can do with ria wcf services, including composition :)
Now if what you need is making your views persist things, you should take a look here, Deny Table Access to the Entity Framework Without Causing a Mutiny:
So yes, I would say you are going the wrong way. Take a look at composition.
Here you don't need a view. I don't know your exact model. Just put each info in it's own table then link them using relations. Add an People.Include("contact").include("address") in your linq query, then add the [include] attribute to the people contact and address field metadata...
After that if you want to add a contact to people, you just do a New Contact(); then people.Contacts.Add(contact); You don't need to fill the contact ID as this is done automatically for you... etc...
I can't help you much more, you will find everything you need in the samples I point you to ;)
Good luck with that...
ps: pavel, I like the GridViewComboBoxColumn tips a lot, thanks ;)