entity-framework - Entity Framework 4 v2 中的一对一关系与 POCO

标签 entity-framework ado.net poco entity-framework-4

我一直在寻找有关如何在 EF4v2 中与 POCO 建立一对一关系的示例。我找到了很多例子,只展示了如何创建一对多或多对多。你有任何关于它的资源吗?

最佳答案

这对我有用。

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

}

关于entity-framework - Entity Framework 4 v2 中的一对一关系与 POCO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2089395/

相关文章:

c# - ASP.NET 核心 : Error when using a custom DbContext while also using Identity

c# - 无法使 Entity Framework 零或一到零或一的关系工作

c# - 编辑项目列表 c#

c# - ASP.NET 中的 GridView

sql-server - 将数据表保存到数据库

c# - 从没有代理类的数据库加载?

logging - 如何使用 Poco 记录器

entity-framework - EF 代码第一个父子映射

entity-framework - 在解决方案中添加现有项目 - 导致引用命名空间错误

c++ - HTTPS 客户端和服务器一起使用 C++ 和 POCO 库(SSL 上下文问题)?