As far as you have the relationship (one to one) defined at the database level then it will work.
I just did a test and hope it helps
1.I have tables Employee & Address - the one to one relationship is defined and verified in the "database diagrams" node of SQL server.
CREATE TABLE [dbo].[employees](
[ID] [int] IDENTITY(1,1) NOT NULL,
[Name] [varchar](50) NULL,
CONSTRAINT [PK_employees] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
CREATE TABLE [dbo].[addresses](
[AddressID] [int] IDENTITY(1,1) NOT NULL,
[EmpID] [int] NOT NULL,
[Address] [varchar](50) NULL,
CONSTRAINT [PK_addresses] PRIMARY KEY CLUSTERED
(
[AddressID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
The following code at the front end works
try {
DataClasses1DataContext db = new DataClasses1DataContext();
employee emp = new employee();
emp.Name = "Bala";
db.employees.InsertOnSubmit(emp);
address add = new address();
add.Address1 = "UK";
add.employee = emp;
db.addresses.InsertOnSubmit(add);
db.SubmitChanges();
MessageBox.Show("OK");
} catch (Exception ex) {
MessageBox.Show (ex.Message);
}