2010-01-18 37 views

Trả lời

1

Nhìn vào Customer ->CustomerDetail trong this example. Đây là 1: 0..1, nhưng tôi đoán điều đó sẽ thực hiện.

+1

Liên kết đó hiện thông báo "Thông tin trong bài đăng này đã lỗi thời". và gửi bạn đến cổng thông tin EF. – DOK

3

Điều này phù hợp với tôi.

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

} 
Các vấn đề liên quan