2010-01-18 10 views
7

के साथ एंटीटी फ्रेमवर्क 4 v2 में एक-से-एक संबंध मैं पीओसीओ के साथ ईएफ 4 वी 2 में एक-से-एक संबंध बनाने के बारे में एक उदाहरण ढूंढ रहा हूं। मुझे बहुत सारे उदाहरण मिलते हैं जो दिखाते हैं कि कैसे एक से कई या कई से अधिक बनाने के लिए। क्या आपके पास इसके बारे में कोई संसाधन है?पीओसीओ

+0

मुझे इस प्रश्न का उत्तर देखना अच्छा लगेगा। –

उत्तर

1

Customer - CustomerDetailthis example पर देखें। यह 1: 0..1 है, लेकिन मुझे लगता है कि ऐसा करेगा।

+1

वह लिंक अब कहता है "इस पोस्ट की जानकारी पुरानी है।" और आपको ईएफ पोर्टल पर भेजता है। – DOK

3

यह मेरे लिए काम किया।

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

} 
संबंधित मुद्दे