Я искал пример того, как построить отношения один-к-одному в EF4v2 с POCO. Я нашел много примеров, которые показывают только, как создать один ко многим или много ко многим. Есть ли у вас какие-либо ресурсы об этом?
Это сработало для меня.
using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Data; using System.Data.Entity; using System.Data.Entity.ModelConfiguration.Conventions; using System.Linq; class Program { static void Main(string[] args) { var myContext = new MyContext(@"Server=.\sqlexpress;Database=CodeFirst;integrated security=SSPI;"); var fr = new FirstReading() { Increment = 12}; myContext.Entry(fr).State = EntityState.Added; myContext.SaveChanges(); var sr = new SecondReading() { Increment = 4 }; sr.FirstReading = fr; myContext.SecondReading.Add(sr); myContext.SaveChanges(); fr = myContext.FirstReading.Single(x => x.Increment == 12); Console.WriteLine(fr.Increment); Console.WriteLine(fr.SecondReading.Increment); sr = myContext.SecondReading.Single(x => x.Increment == 4); Console.WriteLine(sr.Increment); Console.WriteLine(sr.FirstReading.Increment); Console.ReadKey(); } } public class FirstReading { [Key][ForeignKey("SecondReading")] [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] public int FirstReadingId { get; set; } public int Increment { get; set; } public virtual SecondReading SecondReading { get; set; } } public class SecondReading { [Key] [ForeignKey("FirstReading")] public int FirstReadingId { get; set; } public int Increment { get; set; } public virtual FirstReading FirstReading { get; set; } } public class MyContext : DbContext { public DbSet<FirstReading> FirstReading { get; set; } public DbSet<SecondReading> SecondReading { get; set; } public MyContext(string connectionString) : base(connectionString) { Database.SetInitializer<MyContext>(null); } protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Conventions.Remove<PluralizingTableNameConvention>(); } }
поиск
How to declare one to one relationship using Entity Framework 4 Code First (POCO)
или
посмотрите по этой ссылке
Как объявить отношения один-к-одному, используя Entity Framework 4 Code First (POCO)
Посмотрите на Customer -> CustomerDetail в в этом примере .Это 1: 0..1, но я думаю, что подойдет.
Customer
CustomerDetail