.net 一对一实体框架

.net 一对一实体框架,.net,sql,winforms,entity-framework,.net,Sql,Winforms,Entity Framework,有谁知道绑定和插入一对一实体的好例子吗 我希望使用实体框架在一个winform中绑定并能够对这两个表进行更改 此客户表单将同时包含个人实体和客户实体的数据 其中个人实体将有名字和姓氏,客户实体将有联合日期等 这是一对一的关系。只需在个人中使用虚拟客户属性即可。 无需在客户中添加参考 请在下面找到一个完整的项目 using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; u

有谁知道绑定和插入一对一实体的好例子吗

我希望使用实体框架在一个winform中绑定并能够对这两个表进行更改

此客户表单将同时包含个人实体和客户实体的数据 其中个人实体将有名字和姓氏,客户实体将有联合日期等


这是一对一的关系。

只需在
个人
中使用
虚拟客户
属性即可。 无需在
客户
中添加参考

请在下面找到一个完整的项目

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Data.Entity;
using System.Data.Entity.ModelConfiguration;

namespace StackOverflow
{

    public class Context : DbContext
    {
        static Context()
        {
            Database.SetInitializer<Context>(null);
        }

        public DbSet<Person> People { get; set; }
    }


    public class Person
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string LastName { get; set; }
        public virtual Customer Customer { get; set; }
    }

    public class Customer
    {
        public int Id { get; set; }
        public DateTime JoinDate { get; set; }
        //[NotMapped]
        //public virtual Person Person { get; set; }
    }



    class Program
    {
        static void Main(string[] args)
        {
            var context = new Context();
            context.Database.Delete();
            context.Database.Create();

            var person = new Person { Name = "Mark", LastName = "Streisand" };
            person.Customer = new Customer { JoinDate = DateTime.Now };
            context.People.Add(person);
            context.SaveChanges();

            var p = context.People.Find(1);
            var joinDate = p.Customer.JoinDate;
        }
    }
}

谷歌:ef一对一关系我在谷歌上搜索过,没有找到我需要的东西。当我从数据源拖放到winforms客户对象时,我也会将Person对象作为详细信息拖到表单中,但在运行时不会发生任何事情。这就是我在加载事件时绑定它的方式。Me.CustomerBindingSource.DataSource=context.Customers.ToList
    public abstract class Person
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string LastName { get; set; }
        //public virtual Customer Customer { get; set; }
    }

    [Table("Customers")]
    public class Customer : Person
    {
        //public int Id { get; set; }
        public DateTime JoinDate { get; set; }

    }