POCO

2010-01-18 26 views
7

ile Entity Framework 4 v2'de bire bir ilişkiler EF4v2'de POCO'larla bire bir ilişki kurma hakkında bir örnek arıyorum. Sadece bire-çok ya da çoktan çoğunun nasıl yaratılacağını gösteren çok sayıda örnek buldum. Bununla ilgili bir kaynağın var mı?POCO

+0

Bu sorunun cevabını görmek isterim. –

cevap

1

->CustomerDetail - this example. Bu 1: 0..1, ama tahmin edeceğim.

+1

Bu bağlantı artık "Bu yayındaki bilgiler güncel değil" diyor. ve sizi EF portalına gönderir. – DOK

3

Bu benim için çalıştı.

Database design

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>(); 
    } 

}