Ich habe nach einem Beispiel gesucht, wie man eine Eins-zu-Eins-Beziehung in EF4v2 mit POCOs aufbauen kann. Ich habe viele Beispiele gefunden, die nur zeigen, wie man Eins-zu-Viele oder Viele-zu-Viele erstellt. Haben Sie irgendwelche Informationen darüber?Eins-zu-eins-Beziehungen in Entity Framework 4 v2 mit POCO
Antwort
Betrachten Sie Customer
->CustomerDetail
in this example. Das ist 1: 0..1, aber ich schätze, das wird reichen.
Dieser Link sagt jetzt "Die Informationen in diesem Beitrag sind veraltet." und sendet Sie an das EF-Portal. – DOK
Das funktionierte für mich.
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>();
}
}
Suche diese
How to declare one to one relationship using Entity Framework 4 Code First (POCO)
oder
Blick auf diesen Link
How to declare one to one relationship using Entity Framework 4 Code First (POCO)
Bitte schreiben Sie einfach einige Details ... – Ali
Ich würde gerne eine Antwort auf diese Frage sehen. –